経験豊富な .Net 開発者ですが、完全な ASP MVC (および Web 開発者全般) の初心者です。以下を達成する方法について、アーキテクチャのベスト プラクティスの提案を探しています。
3 つの jQuery-UI タブがあります。最初のタブには入力テキスト ボックスがあります<input type="text" name="username" \>
。他のユーザーは AJAX 経由で (暗黙的に jQuery を使用して) 別のページをロードしていますが、この入力フィールドの値を知る必要があります。タブ 2 または 3 の ASP MVC コントローラーからこの値を取得するにはどうすればよいですか? これは根本的に悪いアプローチですか?
~/Views/Shared/_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
@Styles.Render("~/Content/themes/base/css", "~/Content/css")
@RenderSection("head", required: false)
</head>
<body>
@RenderBody()
</body>
</html>
~/Views/Demo/Index.cshtml:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section head
{
<link rel="stylesheet" href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" />
<script src="@Url.Content("~/Scripts/jquery-1.6.2.js")"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")"></script>
<script>
$(function() {
$("#tabs").tabs();
});
</script>
}
<div id="tabs">
<ul>
<li><a href="#Tab1">Tab 1</a></li>
<li><a href="/Tab2">Tab 2</a></li>
<li><a href="/Tab3">Tab 3</a></li>
</ul>
<div id="Tab1">
<p>Want to be able to get the value of the input field below from Tab2 and Tab3</p>
<input type="text" name="username" />
</div>
</div>
~/Controller/Tab2Controller.cs:
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class Tab2Controller : Controller
{
public ActionResult Index()
{
// I want to replace this line with one that takes the value of
// the input text box and queries the model for the real data
ViewBag.MyList = new[] { "1", "2", "3" };
return View();
}
}
}
~/Views/Tab2/Index.cshtml
@{
Layout = null;
}
<ul>
@foreach (var obj in ViewBag.MyList)
{
<li>@obj</li>
}
</ul>
ありがとう。