ASP.NET MVC表单提交索引而不是提交给正确的操作 [英] ASP.NET MVC form submits to index instead to submitting to the right action

查看:110
本文介绍了ASP.NET MVC表单提交索引而不是提交给正确的操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了要用作部分视图的表单。

I crated a form that is to be used as a partial view.

我在保存操作中放置了一个断点,并单击了提交按钮。 ,它将验证数据,但从未执行该操作,而是多次执行 Index 操作!

I placed a breakpoint at the 'Save' action, and when I click the submit button, it validates the data, but never reaches the action, instead the Index action is reached several times!

此处代码是:

@model Models.Category

@using (Html.BeginForm("Save", "Categories", FormMethod.Post))
{
  @Html.AntiForgeryToken()

  <fieldset>
    <legend>Category</legend>

    @Html.HiddenFor(model => model.CategoryId)

    <p>@((Model.CategoryId > 0 ? "Edit" : "New") + " category")</p>

    <div class="editor-label">
      @Html.LabelFor(model => Model.Title)
    </div>
    <div class="editor-field">
      @Html.EditorFor(model => Model.Title)
      @Html.ValidationMessageFor(model => Model.Title)
    </div>

    <div class="editor-label">
      @Html.LabelFor(model => Model.Description)
    </div>
    <div class="editor-field">
      @Html.EditorFor(model => Model.Description)
      @Html.ValidationMessageFor(model => Model.Description)
    </div>

    <p>
      <input type="submit" value="Save">
      @Html.ValidationSummary(true)
    </p>
  </fieldset>
}

操作:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Save(Category category)
{
  throw new Exception("Exception has been thrown!");
}

这是我点击保存时发生的屏幕截图,验证错误出现,但没有调用 Save 操作,也没有引发异常。

而是 Index 操作已触发!

Here is a screenshot of what happens when I hit 'Save', validation error shows up, but the Save action is not called, nor is the exception ever thrown.
Instead, the Index action is triggered!

我还能检查什么以找出问题所在?谁正在将页面重定向到索引?

What else can I check to track down the issue? Who is redirecting the page to index???

您可以看到输出HTML 这里

You can see the output HTML here.

推荐答案

我在 RouteConfig.cs中发现了问题文件。

映射错误会混淆路由,我猜它使用了 Index 操作为默认操作,而不是由于设置错误而未找到的特定操作。

There was a wrong mapping that confused the routing and I guess it used the Index action as a default instead of the specific action that wasn't found due to the wrong setting.

这篇关于ASP.NET MVC表单提交索引而不是提交给正确的操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆