Asp.net mvc 找不到与我们联系的表单操作

Asp.net mvc 找不到与我们联系的表单操作,asp.net-mvc,model-view-controller,asp.net-mvc-routing,Asp.net Mvc,Model View Controller,Asp.net Mvc Routing,不确定为什么这不起作用,但我怀疑这与路由有关。。。(使用MVC5) 单击“提交”按钮时,我收到以下消息: 找不到资源。 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确 请求的URL:/contact 使用以下模型: public class EmailMessageModel { /// <summary>Gets or sets from name.</summary> //

不确定为什么这不起作用,但我怀疑这与路由有关。。。(使用MVC5)

单击“提交”按钮时,我收到以下消息: 找不到资源。 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确

请求的URL:/contact

使用以下模型:

public class EmailMessageModel
{
    /// <summary>Gets or sets from name.</summary>
    /// <value>From name.</value>
    [Required, Display(Name = "Name")]
    public string FromName { get; set; }
}
@model EmailMessageModel

@using (Html.BeginForm("index", "contact", FormMethod.Post, new { enctype = "multipart/form-data", @class = "contact-form" }))
{
    @Html.AntiForgeryToken()

    @Html.LabelFor(m => m.FromName, new { @class = "control-label" })
    @Html.TextBoxFor(m => m.FromName, new { @class = "form-control" })
    @Html.ValidationMessageFor(m => m.FromName)

    <input type="submit" value="Send Message" id="btnSubmitQuery" />
}
公共类EmailMessageModel
{
///从名称获取或设置。
///从名字开始。
[必需,显示(Name=“Name”)]
公共字符串FromName{get;set;}
}
该观点如下:

public class EmailMessageModel
{
    /// <summary>Gets or sets from name.</summary>
    /// <value>From name.</value>
    [Required, Display(Name = "Name")]
    public string FromName { get; set; }
}
@model EmailMessageModel

@using (Html.BeginForm("index", "contact", FormMethod.Post, new { enctype = "multipart/form-data", @class = "contact-form" }))
{
    @Html.AntiForgeryToken()

    @Html.LabelFor(m => m.FromName, new { @class = "control-label" })
    @Html.TextBoxFor(m => m.FromName, new { @class = "form-control" })
    @Html.ValidationMessageFor(m => m.FromName)

    <input type="submit" value="Send Message" id="btnSubmitQuery" />
}
@model EmailMessageModel
@使用(Html.BeginForm(“index”、“contact”、FormMethod.Post、new{enctype=“multipart/formdata”、@class=“contact form”}))
{
@Html.AntiForgeryToken()
@LabelFor(m=>m.FromName,新的{@class=“control label”})
@TextBoxFor(m=>m.FromName,新的{@class=“form control”})
@Html.ValidationMessageFor(m=>m.FromName)
}
控制员名单如下:

public class EmailMessageModel
{
    /// <summary>Gets or sets from name.</summary>
    /// <value>From name.</value>
    [Required, Display(Name = "Name")]
    public string FromName { get; set; }
}
@model EmailMessageModel

@using (Html.BeginForm("index", "contact", FormMethod.Post, new { enctype = "multipart/form-data", @class = "contact-form" }))
{
    @Html.AntiForgeryToken()

    @Html.LabelFor(m => m.FromName, new { @class = "control-label" })
    @Html.TextBoxFor(m => m.FromName, new { @class = "form-control" })
    @Html.ValidationMessageFor(m => m.FromName)

    <input type="submit" value="Send Message" id="btnSubmitQuery" />
}
(HttpPost索引操作上的断点从未命中,知道为什么吗?

命名空间ExternalSite.Controllers { 使用外部站点模型; 使用System.Net.Mail; 使用System.Web.Mvc

[RoutePrefix("contact")]
public class ContactController : Controller
{
    [HttpGet]
    [Route]
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Index(EmailMessageModel model)
    {
        // !!!!!!!!!!BREAKPOINT HERE IS NEVER BEING HIT!!!!!!!!!!!
        if (ModelState.IsValid)
        {

        }

        return View(model);
    }
}
[RoutePrefix(“联系人”)]
公共类ContactController:控制器
{
[HttpGet]
[路线]
公共行动结果索引()
{
返回视图();
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务索引(EmailMessageModel)
{
//!!!!!!!!!!!!!这里的断点永远不会被击中!!!!!!!!!!!
if(ModelState.IsValid)
{
}
返回视图(模型);
}
}

< /代码> 解决方案是将空白路由属性[Routh]添加到HTTPPST索引方法,即

[HttpPost]
[Route]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Index(EmailMessageModel model)
{
    // !!!!!!!!!!BREAKPOINT HERE IS NEVER BEING HIT!!!!!!!!!!!
    if (ModelState.IsValid)
    {

    }

    return View(model);
}
[HttpPost]
[路线]
[ValidateAntiForgeryToken]
公共异步任务索引(EmailMessageModel)
{
//!!!!!!!!!!!!!这里的断点永远不会被击中!!!!!!!!!!!
if(ModelState.IsValid)
{
}
返回视图(模型);
}