0

ダイアログをテストするために JQuery Mobile 1.4 と MVC 4 を使用しています。しかし、ダイアログの投稿アクションで何を返すべきかわかりません。
2 つの質問があります。 1. ダイアログ アクションに対して何を返す必要があるか 2. マスター ページの入力データはダイアログ ポスト後に失われます

マスター ページ ビュー コード:

@model MvcApplication4.Models.ViewModel

@{
    Layout = null;
}

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>TestDialog</title>
        <meta name="viewport" content="width=device-width" />
        <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" />

        <link href="/Content/site.css" rel="stylesheet"/>
        <link href="/Content/jquery.mobile-1.4.0-beta.1.css" rel="stylesheet" />

        <script src="/Scripts/modernizr-2.6.2.js"></script>
        <script src="/Scripts/jquery-2.0.3.js"></script>
        <script src="/Scripts/jquery-ui-1.10.3.js"></script>
        <script src="/Scripts/jquery.mobile-1.4.0-beta.1.js"></script>
    </head>
    <body>
        <div id="layoutPage" data-role="page" data-theme="a"> 
            <div id="layoutHeader" data-role="header">

                <h2>TestDialog</h2>
            </div> 

            <div id="layoutContent" data-role="content">
                @using (Html.BeginForm())
                {
                    <div>
                        <div class="editor-label">
                            @Html.LabelFor(model => model.IDDocument)
                        </div>
                        <div class="editor-field">
                            @Html.EditorFor(model => model.IDDocument)
                            @Html.ValidationMessageFor(model => model.IDDocument)
                        </div>    
                    </div>

                    <div data-role="controlgroup" data-type="horizontal" data-mini="true">
                        <a id="addDetail"  href="@Url.Action("ShowDialog", "SampleTest")" data-rel="dialog" data-role="button" >Test dialog</a>
                    </div>                       
                }
            </div>
        </div>

        <script>
            $(document).on("mobileinit", function () {
                $.mobile.ajaxEnabled = false;
            });
        </script>

    </body>
</html>

ダイアログ ビュー コード:

@model MvcApplication4.Models.ViewModel

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>DialogView</title>
</head>
<body>
    <div id="detailPage1" data-role="dialog"  >  
        @using (Html.BeginForm("ShowDialogActioinPost", "SampleTest", FormMethod.Post))
        {
            <div data-role="header">
                <button type="submit" data-icon="check" class="ui-submit" data-inline="true" data-mini="true">Save</button>
                <h2 >Dialog Information</h2>
                <a data-rel="back" data-icon="back">Go back</a>

            </div> //end header

            <div data-role="content">
                    <div class="editor-label">
                        @Html.LabelFor(model => model.SeqNo)
                    </div>
                    <div class="editor-field">
                        @Html.EditorFor(model => model.SeqNo)
                        @Html.ValidationMessageFor(model => model.SeqNo)
                    </div>
            </div>
        }
    </div>

</body>
</html>

コントローラーコード:

    [HttpGet]
    public ActionResult ShowDialog()
    {
        return View("DialogView");
    }

    [HttpPost]
    public ActionResult ShowDialogActioinPost(ViewModel vm)
    {
        return View("Index");   // should return to master page,  but it doesn't work 
    }

ありがとうウィルソン

4

3 に答える 3

0

モデルをマスター ページに戻す必要があります。

[HttpPost]
public ActionResult ShowDialogActioinPost(ViewModel vm)
{
    return View("Index", vm);  
}
于 2013-10-17T14:18:30.080 に答える
0

RedirectToAction("Index");代わりに試してくださいView("Index");

于 2013-10-17T13:35:17.110 に答える