2

このかみそりのビューでは、前と次と呼ばれる2つのボタンがあります。ユーザーがこれらのボタンを押すと、ユーザータイプを格納するメソッドを呼び出す必要があります。

@using (Html.BeginForm("Index", "Quiz", FormMethod.Post))
{
<div style="border-bottom: 2px solid #c8c8c8; overflow: auto; width: 100%">
    <h2 class="float-left" style="padding-bottom:5px;">@Model.Quiz.Name</h2>

    <div class="float-right">
        <input name="button" type="submit" value="done" />
    </div>
</div>

@for( ...) {
...
}

<div class="fixednavcontainer">
    <div id="questionnav" class="content-wrapper">
        <div id="questionnavstatus" class="float-left">
            <p>
                Question <span id="currentPage">@ViewBag.CurrentPage</span> of <span id="totalPages">@ViewBag.TotalPages</span>
            </p>
        </div>

        <div id="navbuttons" class="float-right">
            <img id="previous" src="~/Images/previous.png" />
            <img id="next" src="~/Images/next.png" />
        </div>

        <div class="clear-fix" />
    </div>
</div>

このようなものはボタンを呼び出す必要があります

private void Save(@model model)
{
    ...
}

ajaxがページの何も更新したり、別のページをロードしたりせず、同じページを保存してそのままにしておくことを望みます。jquery(私は推測する)以来、アクションメソッドを呼び出してこれを行うことは可能でしょうか?

4

2 に答える 2

2

jQueryを使用して、次のように呼び出すこともできます。

var myModel = @Html.Raw(Json.Encode(MyModel));  //MVC3

$.ajax({
    type: "POST",
    url: "/MyController/SomeAction/",
    data: myModel ,
    cache: false,
    dataType: "json",
    success: function (response) {
        // Do whatever you have to do...
    }
});

そして、コントローラーでは次のようになります。

public class MyController
{
    [HttpPost]
    public ActionResult SomeAction(MyModel myModel)
    {
        // Do whatever and return whatever
            return true;
    }
}
于 2013-02-05T06:03:02.070 に答える
2

あなたはただすることができます

$.ajax({
    type: "POST",
    url: "@Url.Action('yourAddress')",
    data: parametr,
    cache: false,
    dataType: "json",
    success: function (response) {
        // Do whatever you have to do...
    }
});

とコントローラーで

public class XController
{
    [HttpPost]
    public ActionResult yourAddress(YourModel)
    {
...
    }
}
于 2013-02-05T06:11:17.730 に答える