Pan*_*yay 7 html-helper asp.net-mvc-3
我没有与Helpers合作的经验,所以我有点不习惯使用手头的代码.
我的要求很简单,我只需要DropDownListFor扩展方法中的optgroup功能.在搜索时,我遇到了这个答案并将其复制到名为MyExtensionClass.cs的文件中.
但是,我不知道如何使用它或调用此中定义的扩展方法.请告诉我如何在列表中使用它.
现在,以下是我想要使用扩展方法的选择列表的控制器代码.
ViewBag.ParentCategoryId = new SelectList(db.Categories, "Id", "Name");
Run Code Online (Sandbox Code Playgroud)
这是我的观看代码
@Html.DropDownListFor(model => model.Product.CategoryId,
(IEnumerable<SelectListItem>)ViewBag.CategoryId, "---Choose Category---",
new { @class = "required" })
Run Code Online (Sandbox Code Playgroud)
请帮我升级到optgroup的扩展方法.
dan*_*wig 19
我们使用Serge Zab的助手进行optgroup下拉.这是一个示例:
视图模型:
public class OurViewModel
{
public int? TypeId { get; set; }
public IEnumerable<GroupedSelectListItem> GroupedTypeOptions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Add()
{
var model = new OurViewModel
{
// fill with initial values
};
PutTypeDropDownInto(model);
return View(model);
}
[NonAction]
private void PutTypeDropDownInto(OurViewModel model)
{
model.GroupedTypeOptions = _repos.GetTypes()
.OrderBy(t => t.Category.EnglishName).ThenBy(t => t.EnglishName)
.Select(t => new GroupedSelectListItem
{
GroupKey = t.Category.RevisionId.ToString(),
GroupName = t.Category.EnglishName,
Text = t.EnglishName,
Value = t.RevisionId.ToString()
}
);
}
Run Code Online (Sandbox Code Playgroud)
风景
@Html.DropDownGroupListFor(m => m.TypeId, Model.GroupedTypeOptions,
"[Select a type]")
Run Code Online (Sandbox Code Playgroud)
请注意,您不能使用常规SelectList.您必须使用他的GroupedSelectListItem类的集合.此外,我们的解决方案不使用viewbag.下拉列表在viewmodel上强列入.
更新
要使html助手在您的视图中工作,视图需要能够找到它.您可以使用MyExtensionClass.cs命名空间在视图顶部添加@using指令,也可以将命名空间添加到特定于视图的web.config中,如下所示:
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Microsoft.Web.Mvc" />
<add namespace="Namespace.For.MyExtensionClass" />
</namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4130 次 |
| 最近记录: |