我新的ASP.NET MVC。我继承了我想一起工作一个code基地。我有一个需要添加一些基本的HTML属性。目前,在我的.cshtml文件,有一个块是这样的:
I am new to ASP.NET MVC. I have inherited a code base that I am trying to work with. I have a need to add some basic HTML attributes. Currently, in my .cshtml file, there is a block like this:
@Html.DropDown(model => model.SomeValue, Model.SomeList)这引用了 Extensions.cs 的功能。此功能如下所示:
This references a function in Extensions.cs. This function looks like the following:
public static MvcHtmlString DropDown<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, IEnumerable<string> items, string classes = "form-control") { var attributes = new Dictionary<string, object>(); attributes.Add("class", classes); return System.Web.Mvc.Html.SelectExtensions.DropDownListFor(html, expression, itemList.Select(x => new SelectListItem() { Text = x.ToString(), Value = x.ToString() }), null, attributes); }我现在已经在那里我需要向下禁止在某些情况下下降的情况。我需要评估 Model.IsUnknown (这是一个布尔值)的值,以确定在下拉列表中是否不应该被启用。
I now have a case where I need to disable the drop down in some scenarios. I need to evaluate the value of Model.IsUnknown (which is a bool) to determine whether or not the drop down list should be enabled or not.
我的问题是,我该如何禁用一个下拉列表,如果我需要?在这一点上,我不知道我是否需要更新我的.cshtml或扩展方法。
My question is, how do I disable a drop down list if I need to? At this point, I do not know if I need to update my .cshtml or the extension method.
感谢您为您提供任何指导。
Thank you for any guidance you can provide.
推荐答案在您的扩展方法添加一个可选的参数禁用名为启用和bydefaut这将是真正并从该视图通布尔参数来禁用或启用它:
Add an optional parameter in your extension method for disabling named enabledand bydefaut it will be true and from view pass bool parameter to disable or enable it:
public static MvcHtmlString DropDown<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, IEnumerable<string> items, string classes = "form-control",bool enabled=true) { var attributes = new Dictionary<string, object>(); attributes.Add("class", classes); if(!enabled) attributes.Add("disabled","disabled"); return System.Web.Mvc.Html.SelectExtensions.DropDownListFor(html, expression, itemList.Select(x => new SelectListItem() { Text = x.ToString(), Value = x.ToString() }), null, attributes); }和现在查看:
@Html.DropDown(model => model.SomeValue, Model.SomeList,enabled:false)更多推荐
使用ASP.NET MVC扩展方法
发布评论