0
我在一个视图中有一个下拉菜单,我必须在其他视图中使用此下拉菜单的选定值。视图之间传递参数 - MVC-3 - 不是TempData方法
我不想使用Tempdata方法,因为它不是最佳做法。
有没有比这更好的方法。
请给出最佳实践方案。
谢谢 哈日
我在一个视图中有一个下拉菜单,我必须在其他视图中使用此下拉菜单的选定值。视图之间传递参数 - MVC-3 - 不是TempData方法
我不想使用Tempdata方法,因为它不是最佳做法。
有没有比这更好的方法。
请给出最佳实践方案。
谢谢 哈日
我可以修改,这是你为我提供了一个更大的图片(阅读:更多的代码)的东西已经在您的意见
第一视图(您List<SelectListItem>
可能会有所不同)
@using (Html.BeginForm("Step2", "Silly")) {
@Html.DropDownList("NameOfDropDown", new List<SelectListItem>()
{
new SelectListItem()
{
Text = "Label 1",
Value = "1"
},
new SelectListItem()
{
Text = "Label 2",
Value = "2"
}
})
<input type="submit" value="Submit" />
}
在控制器
然后
public class SillyController : Controller
{
[HttpPost]
public ActionResult Step2(string NameOfDropDown)
{
// if the only value being passed is a string, you'll need
// to wrap it in something like a view model class
return View(new Step2ViewModel() { MyValue = NameOfDropDown });
}
}
public class Step2ViewModel()
{
public string MyValue { get; set; }
}
而在第二个观点,Step2.cshtml(假设剃刀)
@model Yournamespace.Step2ViewModel
<div>@Model.MyValue</div>
你能不能给我们的两个视图是如何关联的一个更好的描述?它们都是容器视图中的部分视图吗?它们是否被多个HTTP请求分开? – 2011-06-09 13:04:43
他们是完全不同的意见。一个视图名称是AddAbsence和其他ViewName是AmendAbsence。 – 2011-06-09 13:08:27
当您从第一个下拉列表中发布值时,是否从该控制器操作呈现下一个视图(需要第一个下拉值的视图)? – 2011-06-09 13:15:42