複数のタブを保持するjQueryダイアログがあり、各タブにはフォームが含まれ、jQueryダイアログには、すべてのタブ/フォーム間で共有される「グローバル」値を持つDropDownListが含まれています。
キーは「サイト」です。これは、コントローラーからの結果に応じて、非表示フィールドまたはドロップダウンリストのいずれかによって設定されます。
これはおそらく非常に簡単な作業ですが、その方法がわかりません(MVC3、JavaScript、およびWebプログラミング全般はまだ新しいです)。JavaScriptで値を取得することはできますvar value = $('#Site').val();
が、JS変数をC#変数に保存できないため、コントローラーに送信する方法がわかりません。その逆も同様です。このコマンドを使用してフォームを送信します。$('#' + tabid).submit();
コード:
<div id='jquery-dialog' title="Create new">
@if (ViewBag.SiteList == null)
{
@Html.Hidden("Site", Request.Params["ForSite"])
}
else
{
@Html.DropDownList("Site", (SelectList)ViewBag.SiteList)
}
<div id="tabs">
<ul>
<li><a href="#tab0">Tab 0</a></li>
<li><a href="#tab1">Tab 1</a></li>
</ul>
@using (Ajax.BeginForm("Create", null, new AjaxOptions() { HttpMethod = "POST" }, new { id = "tab0" }))
{
<div id="tab0">
This is Tab 0
</div>
}
@using (Ajax.BeginForm("Create", null, new AjaxOptions() { HttpMethod = "POST" }, new { id = "tab1" }))
{
<div id="tab1">
This is Tab 1
</div>
}
</div>
</div>