GVKun编程网logo

asp.net – 编辑不适用于Html.DropDownList和@class属性(不能用于编辑网页的是)

14

本文将为您提供关于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 – 编辑不适用于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非常有趣:
 如果您没有提供选择列表

@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

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显示默认值

ASP.NET MVC 让@Html.DropDownList显示默认值

 

    一、View代码

        

 

  1.   @using (Ajax.BeginForm("Edit", new AjaxOptions() { OnSuccess = "afterEdit" }))
  2.   {
  3.   @Html.HiddenFor(model => model.ID)
  4.   @Html.HiddenFor(model => model.isUsed)
  5.    
  6.   <div>
  7.   <tablealign="center">
  8.   <tr>
  9.   <td>@Html.Label("评论人职务:")</td>
  10.   <td>@Html.DropDownList("YzPositionCriticsID", ViewData["CriticsPositionType"] as SelectList)</td>
  11.   </tr>
  12.   <tr>
  13.   <td>@Html.Label("被评论人职务:")</td>
  14.   <td>@Html.DropDownList("YzPositionEvaluationID", ViewData["EvaluationPosition"] as SelectList)</td>
  15.   </tr>
  16.   <tr>
  17.   <td>@Html.Label("权重:")</td>
  18.   <td>@Html.TextBoxFor(model => model.Weight)</td>
  19.   </tr>
  20.   </table>
  21.   </div>
  22.    
  23.   }

 

 

    二、Controller代码    

        

 

  1.   public ActionResult Edit(string id)
  2.   {
  3.   //6.1根据ID从数据库中查出要修改的相关数据
  4.   Guid Gid = new Guid(id);
  5.   Model.DTO.YzWeightEntityDTO weight = weightBLL.LoadEnities(u => u.ID == Gid).FirstOrDefault().ToDto();
  6.    
  7.   //6.2查询YzPositionEntity实体的数据
  8.   List<Model.DTO.YzPositionEntityDTO> positionList = positionBLL.LoadEnities().ToList().Select(s => s.ToDto()).ToList();
  9.    
  10.   //6.3将YzPositionEntity的数据封装到 SelectList中,制定要生成下拉框选项的value和text属性
  11.   SelectList selList1 = new SelectList(positionList, "ID", "PositionType", weight.YzPositionCriticsID);
  12.   SelectList selList2 = new SelectList(positionList, "ID", "PositionType",weight.YzPositionEvaluationID);
  13.    
  14.   //6.4把生成的集合放到ViewData中
  15.   ViewData["CriticsPositionType"] = selList1;
  16.   ViewData["EvaluationPosition"] = selList2;
  17.   return View(weight);
  18.   }

 

 

     在这里需要注意的是:SelectList selList1 = new SelectList(list,"","",***),这里的***就是下拉框加载时候要显示的默认值。

     

     最后的显示效果如下:

     

    

     总结:

     在MVC的学习过程中,总会时不时遇到一些小问题,需要转个弯才能找到答案。在解决问题的过程中经验真的很重要,它能告诉你一个问题的突破点在什么地方;除此之外,熟练的使用api文档也是解决问题的重要途径;最后,真的发现解决问题是提高自己学习兴趣的不接动力。

    

ASP.NET MVC4中使用Html.DropDownListFor的方法示例

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部分

复制代码 代码如下:
@Html.DropDownListFor(m => m.DepartmentId, ViewBag.DepartmentList as IEnumerable<SelectListItem>, new { id = "ddlDepartment"})

或者:

复制代码 代码如下:
@Html.DropDownListFor(m => m.DepartmentId, (List<SelectListItem>)ViewBag.DepartmentList, new { id = "ddlDepartment"})

更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net优化技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。

您可能感兴趣的文章:
  • Asp.net MVC中获取控制器的名称的方法
  • ASP.NET MVC自定义错误页面真的简单吗?
  • ASP.NET MVC阿里大于短信接口开发短信群发能
  • Asp.NET MVC中使用SignalR实现推送功能
  • asp.net mvc自定义pager封装与优化
  • ASP.NET MVC4 Razor模板简易分页效果
  • ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之资源环境准备
  • ASP.NET MVC中URL地址传参的两种写法
  • ASP.NET MVC5网站开发之登录、验证和注销管理员篇1(六)
  • asp.net mvc实现简单的实时消息推送
  • ASP.NET MVC传送参数至服务端详解及实例

Asp.net MVC5中Html.DropDownList的使用

Asp.net MVC5中Html.DropDownList的使用

一.静态下拉列表项的绑定

在下拉列表中绑定静态项,我们可以通过 SelectListItem 的集合作为数据源的下拉列表。
1     @Html.DropDownList("dropRoles", new List<SelectListItem>()
2     {
3         new SelectListItem() { Text= "Yes", Value = "true" },
4         new SelectListItem() { Text= "No", Value = "false", Selected = true }
5     }, "Select ..."),new { @,})

 在上面的代码片段中,

第一个参数是下拉列表中的名称;

第二个参数是 SelectListItem 要用作数据源的下拉列表中的集合和第三个参数是默认值,如果将选中"选择 = true"不在任何的 SelectListItem 中指定。

第三个参数是在下拉列表中显示的默认默认空项。

第四个参数是写入下拉列表中的样式/类或其他 HTML 属性( htmlObjectAttributes)。

二、绑定多个表数据

 @Html.DropDownList("MultipleTables", ViewBag.Roles as SelectList)

 控制器操作方法代码

1
2
3
4
5
6
7
8
9
10
11
var  data =  from  in  db.PersonalDetails
                        join  in  db.Files
                        on  p.AutoId  equals  f.PersonalDetailsId
                        select  new
                        {
                            PersonName = p.FirstName,
                            MyFileName = f.FileName
                        };
 
             SelectList list =  new  SelectList(data,  "MyFileName" "PersonName" );
             ViewBag.Roles = list;

 

在上面的代码片段中,我们加入了两个表使用 LINQ,形成具有到 PersonName 和 MyFileName 属性的对象。转换成通过指定dataTextFileld dataValueField 的下拉列表。
 此时集合然后被设置为 ViewBag.Roles,用作数据源的下拉列表中的视图。
 

三、在下拉列表中绑定模型

在下拉列表中绑定一个模型属性,使用下面的代码片段。
public IEnumerable<SelectListItem> Categories { get; set; }
在该控制器的操作方法中设置此属性值,
model.Categories = db.CategoryModels.Where(c => c.SectionId == sectionId &&
 c.Active == true).OrderBy(ct => ct.CategoryName).ToList().
Select(x => new SelectListItem { Value = x.CategoryId.ToString(), Text = x.CategoryName }).ToList();
在上面的代码片段中,注意第三行的代码中,是从列表中选择的所有项目,创建SelectListItem 对象所指定的值为类别 id 和类别名称作为文本。
 
当此集合有界的下拉列表中时,类别 id 作为项的值和类别名称用作下拉列表项的文本。
四、更改下拉列表项的回发

 在 ASP.NET MVC 中的窗体中更改下拉列表项自动回发,我们可以在 htmlObjectAttributes 中这样指定 onchange 属性。

@Html.DropDownList("MultipleTables", ViewBag.Roles as SelectList, "Select ...", 
new { @,, onchange = "this.form.submit();" })
在上面的代码片段,onchange 属性会迫使该窗体以提交它在服务器上,当用户更改下拉列表中的选定内容。

关于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-mvc – MissingMethodException:“此对象没有无参数构造函数”(此对象没有属性)

下一篇asp.net – 在Appharbor上的Dotless(asp.net app_data)