如何在ASP.NET MVC 2中的.aspx页面上设置Model属性的值?

时间:2010-12-03 12:23:24

标签: asp.net asp.net-mvc-2 model

我有一个强类型视图。我将模型传递到视图中,然后我将模型值分配给标签等 我还想在.aspx页面上以编程方式设置Model值,如:

<%= Model.someValue = "foo"; %>

然后将该模型传递回控制器操作,然后访问这些值。我知道我可以将值应用于这样的模型:

<%= Html.TextBoxFor(n => n.someValue) %>  

但在这种情况下,这不适合我。

2 个答案:

答案 0 :(得分:0)

您要设置哪些信息?您需要将它们放在将被POST回服务器的表单字段中。 E.g。

public class MyModel
{
  public string Name { get; set; }

  public string UniqueCode { get; set; }
}

如果需要,可以设置属性:

<% Model.UniqueCode = "something"; %>
<%= Html.HiddenFor(m => m.UniqueCode) %>

然后在回发表单时接受这些新值:

public MyController : Controller
{
  public Index()
  {
    return View(new MyModel { Name = "Hello" });
  }

  [HttpPost]
  public Process(MyModel model)
  {
    string code = model.UniqueCode;
  }
}

虽然为什么你的观点会修改模型?

答案 1 :(得分:0)

如果用户不应该在视图中修改此模型的值,那么您可以使用隐藏字段或只是传递一些唯一标识符,这将允许控制器操作从存储库中检索模型。