升级到MVC5后,当前上下文中不存在HttpMethod

时间:2014-10-23 09:46:28

标签: .net asp.net-mvc-4 visual-studio-2012 asp.net-mvc-5.2

将我的MVC4应用程序升级到MVC5并跟随此tutorial后出现编译错误:

@using System.Net.Http
@model MyApplication.Models.Data
@{
    ViewBag.Title = "My Page";
}
@using (Ajax.BeginForm("Add", "Home", HttpMethod.Post, new AjaxOptions() { UpdateTargetId = "Result" }, new { @class = "form-horizontal" }))
{
    @Html.Partial("Partial")
    <div id="Result">
        @Html.Partial("AddPartial", Model);
    </div>
}

错误CS0103:当前上下文中不存在名称“HttpMethod”

我在项目中引用了System.Net.Http.dll(4.0.0.0)。

编辑:更新后我仍然在“管理Nuget包”中发出警告,说某些软件包无法完全卸载并告诉我重新启动VS,但是这样做不起作用并且警告仍在那里。

1 个答案:

答案 0 :(得分:1)

Ajax.BeginForm 中,我们需要在AjaxOptions中使用属性HttpMethod传递带有字符POSTGET的方法:

@using (Ajax.BeginForm("Add", "Home", new AjaxOptions() 
                                      { 
                                        UpdateTargetId = "Result",
                                        HttpMethod="POST" 
                                      }, new { @class = "form-horizontal" }))
{
}

Html.BeginForm 中,我们必须传入第三个参数,即枚举FormMethod,在后一种情况下,我们使用FormMethod.Post

@using (Html.BeginForm("Add", "Home",FormMethod.Post, new { @class = "form-horizontal" }))
{
}