1

経験豊富な .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>

ありがとう。

4

1 に答える 1