Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC使用Ajax和GET发布表单数据_Ajax_Asp.net Mvc_Forms_Razor_Get - Fatal编程技术网

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

MVC使用Ajax和GET发布表单数据,ajax,asp.net-mvc,forms,razor,get,Ajax,Asp.net Mvc,Forms,Razor,Get,我有一个MVC项目在我的表单中,它发布到CommentController中创建的方法中。我正在使用httppost。代码如下所示: 包含表单的视图 @model myproject.Models.Comment @using (Ajax.BeginForm("Create", new AjaxOptions { UpdateTargetId = "CommentContainer" })) { @Html.ValidationSummary(true) @Html.Labe

我有一个MVC项目在我的表单中,它发布到CommentController中创建的方法中。我正在使用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>

现在所有这些都很好,但我想要的是使用GET not POST来完成这一切。我仍然希望使用Ajax.BeginForm和2个javascript库。我不想编写自己的jQuery代码。如何将上述表单数据发布到CommentController内的GET方法中

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

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

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

为什么要使用GET发布数据?以避免用户单击浏览器上的“后退”按钮时出现“后退”警告。您好,HTX9!谢谢你的建议,但是这不起作用。这就像点击事件永远不会被触发一样。等等!我尝试了一些更明确的包括控制器的名称CommentController这是不包括在后版本,并知道它的工作!谢谢为读者服务;上述代码中唯一的变化是:1@使用Ajax.BeginFormCreate、Comment、new AjaxOptions{HttpMethod=Get,在CommentController中,我刚刚在Create方法上方设置了[HttpGet]。
@using (Ajax.BeginForm("Create", new AjaxOptions { HttpMethod = "Get", UpdateTargetId = "CommentContainer" }))
{
    ... your form elements ...
}