首页 > 解决方案 > ASP.NET 提交表单 - 找到状态代码 302

问题描述

我有简单的形式。当我使用发布请求提交空表单(用于测试验证)时......

它不显示验证消息,也返回状态代码 302。还生成一些随机查询字符串。像这样的东西:

http://localhost:49852/Events/Create?Type=0&details=System.Collections.Generic.List%601%5BSampleProject.Models.Type%5D

这种状态我从未见过!

@{Html.BeginForm("Save", "Event" , FormMethod.post);}

    @Html.ValidationSummary(true, "Please fix these problems.")

    // fields...
    <input type="submit" value="Save" class="btn btn-primary" />

@{Html.EndForm();}

控制器

[Authorize]
[HttpPost]
public ActionResult Save(EventFormViewModel viewModel)
{
    if (!ModelState.IsValid)
        return RedirectToAction("Save",viewModel);

    //..additional Code.

    return RedirectToAction("Index", "Home");
}

标签: c#asp.net

解决方案


问题是,如果ModelState您使用模型数据InValid重定向到Save方法,而不是返回带有无效模型数据的当前视图。

所以写你的Save POST方法如下:

[Authorize]
[HttpPost]
public ActionResult Save(EventFormViewModel viewModel)
{
    if (!ModelState.IsValid)
        return View(viewModel);

    //..additional Code.

    return RedirectToAction("Index", "Home");
}

推荐阅读