Asp.net mvc 使用强类型视图存储隐藏值
我正在从ASP.NET WebForms过渡到MVC,我有一个问题 我有一个强类型视图。如何存储被删除项目的索引,以便在提交页面时轻松更新数据Asp.net mvc 使用强类型视图存储隐藏值,asp.net-mvc,Asp.net Mvc,我正在从ASP.NET WebForms过渡到MVC,我有一个问题 我有一个强类型视图。如何存储被删除项目的索引,以便在提交页面时轻松更新数据 如果我使用WebForms,我可以在回发时查看URL中的查询参数,将索引存储在视图数据中,或者将其存储在隐藏控件中。如何在MVC中实现这一点?MVC的美妙之处在于,您可以用几种不同的方法解决这一问题。您只需要找到最适合您特定场景的解决方案。虽然隐藏字段肯定会起作用,但它并不总是最理想的解决方案。下面是一个快速删除场景示例: 控制器 public clas
如果我使用WebForms,我可以在回发时查看URL中的查询参数,将索引存储在视图数据中,或者将其存储在隐藏控件中。如何在MVC中实现这一点?MVC的美妙之处在于,您可以用几种不同的方法解决这一问题。您只需要找到最适合您特定场景的解决方案。虽然隐藏字段肯定会起作用,但它并不总是最理想的解决方案。下面是一个快速删除场景示例: 控制器
public class ExampleController
{
static Dictionary<int, string> sampleViewModel = new Dictionary<int, string>
{
{1, "Example Item 1"},
{2, "Example Item 2"},
{3, "Example Item 3"},
};
public ActionResult Index()
{
return View(sampleViewModel);
}
[HttpPost]
public ActionResult Delete(int id)
{
sampleViewModel.Remove(id);
return RedirectToAction("Index");
}
}
公共类示例控制器
{
静态字典sampleViewModel=新字典
{
{1,“示例项1”},
{2,“示例项目2”},
{3,“示例项目3”},
};
公共行动结果索引()
{
返回视图(sampleViewModel);
}
[HttpPost]
公共操作结果删除(int id)
{
sampleViewModel.Remove(id);
返回操作(“索引”);
}
}
查看
@model System.Collections.Generic.Dictionary<int, string>
<html>
<head>
...
</head>
<body>
<table>
<thead>
<tr>
<th>Item</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
<td>@item.Key</td>
<td>
@using (Html.BeginForm("Delete", new { id = item.Value })) {
<input type="submit" value="Delete" />
}
</td>
</tr>
}
</tbody>
</table>
</body>
</html>
@model System.Collections.Generic.Dictionary
...
项目
@foreach(模型中的var项目){
@项目.关键
@使用(Html.BeginForm(“Delete”,new{id=item.Value})){
}
}
我只是很快地把它拼凑起来,所以我为任何语法错误道歉。希望这有帮助 谢谢。如果可以的话,还有一个问题。如果我试图编辑,是否有方法访问更新的模型数据?我花了很长时间才找到这方面的例子。您可以执行以下操作之一:@使用(Html.BeginForm()){我正在尝试。但我仍然不确定如何访问正在提交的模型数据。抱歉,我以前的评论被截断了。这里有一个更好的答案:---当然。不幸的是,在这里的评论中没有很好的方法来回答这个问题。请看NerdDinner教程,它很好地介绍了核心MVC概念:注意t本教程有点旧,没有使用当前版本的MVC。概念仍然相同。明白了,谢谢。我想MVC 3中会有一些更自动化的东西。但是我似乎能够得到我需要的东西,并且可以使用
UpdateModel()
作为一种快捷方式。