MVC 从 url 中隐藏路由值表单帖子
本文关键字:表单 路由 隐藏 url MVC | 更新日期: 2023-09-27 17:55:41
在窗体上使用多个步骤,不同的视图共享一个模型。
在我的第二个步骤表单帖子提交时,我正在传递我的模型以保持状态。
<% using (Html.BeginForm("StepTwo", "Home", Model, FormMethod.Post, new { id = "restrictionForm" })) { %>
但是我发现当我点击提交并且它以我想要的方式工作时,我的整个模型及其属性现在都列在 url 中,这是不可取的。
[Authorize]
[HttpPost]
[ActionName("StepTwo")]
[ValidateAntiForgeryToken]
public ActionResult StepTwoPost(PostcodesModel model)
{
try
{
_Provider.AddNewRestriction(model.Postcode, model.SelectedRestriction, model.RestrictionDescription, model.WildcardID);
return View("StepThree", model);
}
catch(Exception ex)
{
ViewBag.PostCodeErrors = "<div class='"errorMessage'">Error inserting restriction " + model.Postcode + ".</div><p>" + ex.Message + "</p>";
return View(model);
}
}
无论如何,现在以这种方式在URL中显示模型?
即
http://localhost:/Home/StepThree?Postcode=1234&.....
你能发布完整的视图吗?
您如何呈现模型值? 如果您在提交按钮中将它们呈现为路由数据,则会导致它们出现在 URL 上,您应该将它们呈现为 HTML 元素中的模型 例如,文本框"或"隐藏",这些值将作为表单数据发布