【问题标题】:Form Submit Resource Not Found Error表单提交资源未找到错误
【发布时间】:2012-05-20 02:16:50
【问题描述】:

我正在开发一个带有表单的 mvc 项目。页面加载得很好,但是当我点击提交按钮时,我得到了这个错误:

“/”应用程序中的服务器错误。 无法找到该资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保其拼写正确。

请求的网址:/commercialrecycling

版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.225

我在我的机器上本地运行表单。如何解决此错误?

【问题讨论】:

    标签: asp.net asp.net-mvc visual-studio-2010


    【解决方案1】:

    你的控制器动作有[HttpGet] 属性吗?这将限制表单发布并返回 404 错误

    【讨论】:

    • 我为我的 Index 方法添加了一个,但仍然遇到同样的错误
    【解决方案2】:

    确保您有一个名为 commercialrecycling 类型为 HttpPost 的操作方法

    [HttpPost]
    public ActionResult Index(YourModel model)
    {
      //Do for processing now
    }
    

    假设您的表单是名为 YourViewModel 的模型/视图模型的强类型。

    如果不想使用Model绑定,可以直接使用参数

    [HttpPost]
    public ActionResult Index(string username,string password)
    {
      //Do for processing now
    }
    

    参数名称应与要从中读取数据的 HTML 元素的名称相同。

    【讨论】:

    • 您不需要添加 HttpPost 属性,您只需要确保未应用 HttpGet 即可。方法属性限制为指定的动作不允许定义的动作。
    • @MichaelGattuso :如果您没有明确提及它作为 [HttpPost],它将被视为 GET 动词。用户点击表单中的提交,他得到了 404 错误。这意味着缺少 HttpPost 操作。
    • CommercialRecycling 是我正在处理的另一个 mvc 项目,当我只是尝试启动页面时,它给了我这个错误。我正在处理的这个新的 mvc 项目要求一些看起来不同的项目。这没有任何意义。
    • @jsmith: 那么你当前 url 的控制器和动作名称是什么
    • @jsmith:我猜这是您家庭控制器中的索引操作。使用 Index 操作的 HttpPost。我更新了我的答案
    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多