MVC使用Ajax和GET发布表单数据

时间:2014-02-19 19:26:22

标签: ajax asp.net-mvc forms razor get

我在其中有一个MVC项目,我发布了一个注释到CommentController中的方法(Create)。我正在使用httppost。代码如下: 包含表单的视图。

@model myproject.Models.Comment

@using (Ajax.BeginForm("Create",
new AjaxOptions { UpdateTargetId = "CommentContainer" }))
{
    @Html.ValidationSummary(true)

    @Html.LabelFor(model => model.UserComment)
        @Html.EditorFor(model => model.UserComment)
        @Html.ValidationMessageFor(model => model.UserComment)
    <br />

    <input type="submit" value="Create comment" />
}

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js"></script>

CommentController包含Create方法

[HttpPost]
public PartialViewResult Create(Comment comment)
{
    return PartialView("_RandomComment", comment);
}

现在这一切都运行正常,但我想要的是使用GET而不是POST来完成所有操作。我仍然想使用Ajax.BeginForm和2个javascript库。我不想编写自己的jQuery代码。如何将上面的表单数据发布到我的CommentController中的GET方法。

1 个答案:

答案 0 :(得分:0)

我不建议使用GET发送表单数据。但是,如果您真的想这样做,只需在"Get"属性中指定AjaxOptions.HttpMethod

@using (Ajax.BeginForm("Create", new AjaxOptions { HttpMethod = "Get", UpdateTargetId = "CommentContainer" }))
{
    ... your form elements ...
}

同时将您的操作方法从接受[HttpPost]更改为[HttpGet]