MVC隐藏RouteValues来自Url的帖子

时间:2014-04-01 11:54:17

标签: c# asp.net-mvc

在表单上使用多个步骤,共享一个模型的不同视图。

在我的第二步表格帖子提交中,我传递了我的模型以维持状态。

<% using (Html.BeginForm("StepTwo", "Home", Model, FormMethod.Post, new { id = "restrictionForm" }))   { %>

但是我发现当我点击提交并且它按照我想要的方式工作时,我的整个模型及其属性现在列在网址中,这是不可取的。

[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&.....

1 个答案:

答案 0 :(得分:0)

你可以发布完整视图吗?

你是如何渲染模型值的?如果您将它们作为路由数据呈现在提交按钮中,这些将导致它们出现在URL上,您应该在HTML元素“Textbox”或“Hidden”中呈现它们,并且这些值将作为表单数据发布< / p>