我有一个强类型视图。我将模型传递到视图中,然后我将模型值分配给标签等 我还想在.aspx页面上以编程方式设置Model值,如:
<%= Model.someValue = "foo"; %>
然后将该模型传递回控制器操作,然后访问这些值。我知道我可以将值应用于这样的模型:
<%= Html.TextBoxFor(n => n.someValue) %>
但在这种情况下,这不适合我。
答案 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)
如果用户不应该在视图中修改此模型的值,那么您可以使用隐藏字段或只是传递一些唯一标识符,这将允许控制器操作从存储库中检索模型。