ASP.NET提交表单-状态代码302

时间:2018-12-17 13:23:01

标签: c# asp.net

我有简单的表格。当我使用邮寄请求提交空表格(用于测试验证)时...

它不显示验证消息,也返回状态代码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");
}

1 个答案:

答案 0 :(得分:3)

问题在于,如果ModelStateInValid,则您将使用模型数据重定向到Save方法,而不是使用无效模型数据返回当前视图。

因此,如下编写您的Save POST方法:

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

    //..additional Code.

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