2011-12-06 11 views
2

私はページを持っています。このリストには、編集するオブジェクトの名前を含むドロップダウンリストがあります。アイテムを選択すると、AJAX呼び出しがテキストを読み込んでテキストエリアに表示されるように、これが機能しています。今、私は '保存'、 '名前を付けて保存'、 '削除'のボタンを使いたいと思っています。名前を付けて保存するには、jqueryを使用して名前を付けて保存するようにポップアップを表示する必要があります。いずれの場合も、フォーム外の要素にあるデータをサーバーに渡す必要があります。私は3つのボタンをすべて別のフォームにすることはできません。テキストを入力するためのテキストエリアがすべてあります。ドロップリストから選択した値が必要です。これは既にテキストエリアを含むフォームの外にあります。どのようにAJAX呼び出しを1つ使用し、解析する必要があるすべての種類のデータを渡すことができるかを見ることができますが、それは私には醜いようです。おそらくJSON(必ずしもそうではない)を使って、私のページ上のコントロールの値を渡すことができますが、フォームの外で、AJAX呼び出しを行う方法はありますか?MVC3と邪魔にならないAJAXを使用して、コントロールのパラメータをコントロールに渡します

@using (Ajax.BeginForm(new AjaxOptions 
    { 
     Url = Url.Action("GetCoupon"), 
     OnSuccess = "OnLoadSuccess" 
    })) 
    { 
      @Html.DropDownList("ddlCoupons", 
      Model.Coupons.Select(a => new SelectListItem { Text = a.Name, Value = a.CouponId.ToString() }), 
      "--Empty--",new{ 
      onchange = "OnSelectCoupon();" 
    }); 
     <input type="submit" value="Load" id="sbmtCoupon" style="visibility:hidden"/> 
    } 

は今、この作品:

だから例えば、私はこれを持っています。しかし、私は別のAJAXフォームを持っている:

@using (Ajax.BeginForm(new AjaxOptions 
{ 
    Url = Url.Action("SaveCoupon") 
})) 
{ 
    <input type="submit" value="Save" /> 
} 

私はこのAJAX呼び出しに、ドロップダウンリスト、およびテキスト領域のテキストの選択されたIDを渡したいです。今、私はいくつかの隠しフィールドを追加し、各フォームのフィールドを埋めるために変更イベントを処理しています(3つのアクションがあります)ので、必要なものを送信しますが、フォーム全体の値を検索することによって、

答えて

0

は、私はあなたの質問を理解していると言うカントしかし、あなたはあなたからの既定の投稿を防ぐために必要があるようにそれはそうと、私はこれらのページ上の唯一のボタンと想定し

ような何かを試すことができますそうclickイベント

$("button").click(function(e){ 
e.preventDefault(); //prevent the default behaviour of the form 
var buttonpPressed = $(this).data("val"); //get which button is pressed 
var valueOfField = $("#idOfyourDDL").val(); 
$.post("/Home/Index",{buttonPressed:buttonPressed,value:valueOfField},function(data){ 
//this is the callback which will execute upon successful ajax post 
alert(data.actionPerformed); 
},'josn'); 
}); 

[HttpPost] 
the ActionResult would look like 

public ActionResult(string buttonPressed){ 

if(buttonPressed=="saveas"){ 
// perform some action 
return Json(new{actionPerformed="saveas"}); 
} 
else{ 
//perform someother action 
return Json(new{actionPerformed="save"}); 
} 
} 
+0

OKにそれらをフックアップ - 私はMVC AJAXのものを使用することはできません、私はこれを行うには、直接jqueryのを使用する必要がありますか? – cgraus

+0

あなたの質問にコードを含める必要がある場合は、特に何かを尋ねたいと思う場合は、その1つの方法 – Rafay

+0

申し訳ありませんが、私は思ったほど具体的ではないと思います – cgraus

関連する問題