本文将为您提供关于asp.net–编辑不适用于Html.DropDownList和@class属性的详细介绍,我们还将为您解释不能用于编辑网页的是的相关知识,同时,我们还将为您提供关于ASP.NETM
本文将为您提供关于asp.net – 编辑不适用于Html.DropDownList和@class属性的详细介绍,我们还将为您解释不能用于编辑网页的是的相关知识,同时,我们还将为您提供关于ASP.NET MVC 3中的DropDownList、ASP.NET MVC 让@Html.DropDownList显示默认值、ASP.NET MVC4中使用Html.DropDownListFor的方法示例、Asp.net MVC5中Html.DropDownList的使用的实用信息。
本文目录一览:- asp.net – 编辑不适用于Html.DropDownList和@class属性(不能用于编辑网页的是)
- ASP.NET MVC 3中的DropDownList
- ASP.NET MVC 让@Html.DropDownList显示默认值
- ASP.NET MVC4中使用Html.DropDownListFor的方法示例
- Asp.net MVC5中Html.DropDownList的使用
asp.net – 编辑不适用于Html.DropDownList和@class属性(不能用于编辑网页的是)
ViewBag.Category = new SelectList(this.service.GetAllCategories(),product.Category);
我没有使用Id Name. GetAllCategories()只返回几个int数.
当我在视图中使用时:
@Html.DropDownList("Category",String.Empty)
一切正常.编辑正常,DropDownList显示所选值.
HTML结果:
<select id="Category" name="Category"> <option value=""></option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option selected="selected">5</option> ... </select>
但我需要使用css @class,所以我使用这段代码:
@Html.DropDownList("Category",(IEnumerable<SelectListItem>)ViewBag.Category,new { @})
HTML结果:
<selectid="Category" name="Category"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> ... </select>
不幸的是,编辑仍然有效(我可以保存我选择的值),但DropDownList开始显示默认值而不是数据库中保存的值.
你有什么想法会有什么问题吗?
更新
我做了更新更准确.
GetAllCategories方法如下所示:
public List<int> GetAllCategories() { List<int> categories = new List<int>() { 1,2,3,4,5,6,7,8,9,10,11,12 }; return categories; }
解决方法
如果您没有提供选择列表
@Html.DropDownList("Category",String.Empty)
它将根据提供的属性名称从ViewData / ViewBag中查找选择的值:Category.
但是,如果您提供选择列表,它将根据提供的属性名称类别在ViewData / ViewBag中查找默认选定项目,该类别当然将包含列表而不是默认值.要解决此问题,您有两种选择:
不提供选择列表:
@ Html.DropDownList(“Category”,null,new {@class =“anything”})
要么
使用其他名称而不是ViewBag属性名称类别:
@ Html.DropDownList(“CategoryDD”,(IEnumerable< SelectListItem>)ViewBag.Category,new {@class =“anything”})
ASP.NET MVC 3中的DropDownList
<div> @Html.LabelFor(model => model.Category) </div> <div> @Html.EditorFor(model => model.Category) @Html.ValidationMessageFor(model => model.Category) </div>
这给了我一个标签和一个文本框.如何获取带有静态选择项的下拉列表来代替文本框.请帮忙.我是ASP.NET MVC的新手.我需要Razor语法的解决方案/建议.
解决方法
@Html.DropDownListFor( model => model.Category,new SelectList(new [] {"cat1","cat2","cat3"}) );
ASP.NET MVC 让@Html.DropDownList显示默认值
一、View代码
- @using (Ajax.BeginForm("Edit", new AjaxOptions() { OnSuccess = "afterEdit" }))
- {
- @Html.HiddenFor(model => model.ID)
- @Html.HiddenFor(model => model.isUsed)
- <div>
- <tablealign="center">
- <tr>
- <td>@Html.Label("评论人职务:")</td>
- <td>@Html.DropDownList("YzPositionCriticsID", ViewData["CriticsPositionType"] as SelectList)</td>
- </tr>
- <tr>
- <td>@Html.Label("被评论人职务:")</td>
- <td>@Html.DropDownList("YzPositionEvaluationID", ViewData["EvaluationPosition"] as SelectList)</td>
- </tr>
- <tr>
- <td>@Html.Label("权重:")</td>
- <td>@Html.TextBoxFor(model => model.Weight)</td>
- </tr>
- </table>
- </div>
- }
二、Controller代码
- public ActionResult Edit(string id)
- {
- //6.1根据ID从数据库中查出要修改的相关数据
- Guid Gid = new Guid(id);
- Model.DTO.YzWeightEntityDTO weight = weightBLL.LoadEnities(u => u.ID == Gid).FirstOrDefault().ToDto();
- //6.2查询YzPositionEntity实体的数据
- List<Model.DTO.YzPositionEntityDTO> positionList = positionBLL.LoadEnities().ToList().Select(s => s.ToDto()).ToList();
- //6.3将YzPositionEntity的数据封装到 SelectList中,制定要生成下拉框选项的value和text属性
- SelectList selList1 = new SelectList(positionList, "ID", "PositionType", weight.YzPositionCriticsID);
- SelectList selList2 = new SelectList(positionList, "ID", "PositionType",weight.YzPositionEvaluationID);
- //6.4把生成的集合放到ViewData中
- ViewData["CriticsPositionType"] = selList1;
- ViewData["EvaluationPosition"] = selList2;
- return View(weight);
- }
在这里需要注意的是:SelectList selList1 = new SelectList(list,"","",***),这里的***就是下拉框加载时候要显示的默认值。
最后的显示效果如下:
总结:
在MVC的学习过程中,总会时不时遇到一些小问题,需要转个弯才能找到答案。在解决问题的过程中经验真的很重要,它能告诉你一个问题的突破点在什么地方;除此之外,熟练的使用api文档也是解决问题的重要途径;最后,真的发现解决问题是提高自己学习兴趣的不接动力。
ASP.NET MVC4中使用Html.DropDownListFor的方法示例
本文实例讲述了ASP.NET MVC4中使用Html.DropDownListFor的方法。分享给大家供大家参考,具体如下:
一、控制器部分:
public ActionResult PageDetail() { var thisList = _sysDepartmentBll.GetAllDepartmentList();//数据源 //添加一条默认数据 var resultList = new List<SelectListItem> { new SelectListItem {Text = "--请选择--", Selected = true, Value = ""} }; //将数据源添加到resultList集合中 resultList.AddRange(thisList.Select(thisModel => new SelectListItem { Text = thisModel.DepartmentName, Selected = false, Value = thisModel.DepartmentId })); ViewBag.DepartmentList= GetDepartmentSelectList(_sysDepartmentBll.GetAllDepartmentList()); return View(); }
二、PageDetail.cshtml部分
或者: