如何为MVC模型中的枚举或列表准备Dropdownlist静态值(未从数据库中检索)的模型,以便可以在项目中多次使用该模型?如果你能写出一篇好文章,我将不胜感激。谢谢。如何在MVC模型中创建静态下拉列表值
0
A
回答
0
最后,我通过将参数描述为隐藏输入来找到解决方案。我不确定是否有一个更优雅的方法来将视图中的参数传递给控制器。非常感谢你的好样品。我也标记为有帮助的所有答复。这是我最后的代码对于那些谁可能会遇到类似的问题:
ApplicantViewModel:
public class ApplicantViewModel
{
public IEnumerable<Applicant> Applicants { get; set; }
//Codes for Dropdownlist values
public string SelectedValue { get; set; }
public IEnumerable<SelectListItem> Values
{
get
{
return new[]
{
new SelectListItem { Value = "pdf", Text = "Pdf" },
new SelectListItem { Value = "excel", Text = "Excel" },
new SelectListItem { Value = "word", Text = "Word" }
};
}
}
}
ApplicantController:
public ViewResult Reporting()
{
var model = new ApplicantViewModel();
return View(model);
}
public ActionResult RenderReport(string SelectedValue, string name, string fileName, string dataSource, string table, string filter)
{
//Codes for rendering report
...
}
Reporting.cshtml:
@model MyProject.Models.ApplicantViewModel
@using (Html.BeginForm("RenderReport", "Applicant", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<div>
@Html.DropDownListFor(model => model.SelectedValue, Model.Values, "-- select an option --")
<input type="hidden" name="name" value="Report1"/>
<input type="hidden" name="fileName" value="image rapor"/>
<input type="hidden" name="dataSource" value="ApplicantDataset"/>
<input type="hidden" name="table" value="ApplicantsView"/>
<input type="hidden" name="filter" value="David"/>
<input type="submit" value="submit" />
</div>
}
9
与往常一样,你可以用一个视图模型开始:
public class MyViewModel
{
public string SelectedValue { get; set; }
public IEnumerable<SelectListItem> Values
{
get
{
return new[]
{
new SelectListItem { Value = "1", Text = "Item 1" },
new SelectListItem { Value = "2", Text = "Item 2" },
new SelectListItem { Value = "3", Text = "Item 3" },
};
}
}
}
然后控制器:
public ActionResult Index()
{
var model = new MyViewModel();
return View(model);
}
最后一个观点:
@model MyViewModel
@Html.DropDownListFor(x => x.SelectedValue, Model.Values)
对于您可以使用一些枚举在那里的很多帖子说明了自定义助手。这里有一篇博客文章说明这样的帮手:http://blogs.msdn.com/b/stuartleeks/archive/2010/05/21/asp-net-mvc-creating-a-dropdownlist-helper-for-enums.aspx
相关问题
- 1. 静态下拉列表中MVC
- 2. 在MVC中创建下拉列表nhibernate
- 3. 如何在Asp.net MVC中用分隔符创建带有静态和动态值的下拉列表
- 4. 在Mvc表内创建下拉列表
- 5. 如何在创建/更新表单中添加“静态”下拉列表框
- 6. 在MVC项目中,如何在下拉列表更改值时更新模型?
- 7. ASP.NET MVC - 设置静态选择的默认值(下拉列表)
- 8. MVC模型绑定和下拉列表
- 9. 在Yii中使用多个模型创建下拉列表
- 10. 如何在asp.net中创建动态文本框下拉列表
- 11. 如何在asp.net中创建动态文本框,下拉列表
- 12. 如何在JavaScript中动态创建下拉菜单列表?
- 13. 如何在Excel中创建动态下拉列表
- 14. 如何在PHP中创建动态下拉列表?
- 15. MVC与剃刀创建下拉列表
- 16. 为MVC创建下拉列表ASP.NET
- 17. 如何从ASP.NET MVC中的枚举创建下拉列表?
- 18. 如何在ASP.Net MVC创建下拉列表
- 19. 下拉列表值不在创建MVC 5
- 20. 如何在自定义值的Excel中创建下拉列表
- 21. 在Spring MVC中动态创建模型
- 22. 如何根据另一个动态下拉列表的值创建动态下拉列表?
- 23. 如何在mvc中创建动态下拉菜单
- 24. 在SharePoint中使用列表中的值创建下拉列表
- 25. mvc下拉列表与类型列表的模型
- 26. 创建的状态下拉列表
- 27. Android创建状态下拉列表
- 28. 创建动态下拉列表
- 29. jQuery创建动态下拉列表
- 30. 创建动态下拉列表
感谢您的答复。我会尝试并告知你结果。我只是想知道; 1)如果我用Student实体使用这些值,我也会将这个实体添加到同一个ViewModel。真的吗? 2)如果我在同一张剃须刀上使用两个上拉列表(例如Yes/No值),那么我是否需要创建另一个SelectListItem?或者它也可以在同一张Razor页面上用于不同的Dropdownlist? - –
我测试了这个好方法。但问题是:我无法将SelectedValue传递给控制器。我怎样才能用这种方法做到这一点? –
您的HttpPost控制器操作可以将视图模型作为参数,然后您将自动在“SelectedValue”属性中获取所选值。 –