首页 新闻 会员 周边 捐助

C# MVC中如何绑定下拉框的默认值?

0
悬赏园豆:20 [已解决问题] 解决于 2014-07-09 09:20

  我在控制器里面读取出用户的相关信息,其中有性别,类型为 string,用的是Razor视图,页面上 model 的类型就是用户实体,性别下拉框有三个选项,"保密、男、女",请问我怎么把我读取到的某个用户的性别直接绑定到下拉框上?不想用Js,也不是把性别选项绑定到 List集合中然后再绑定,就是想知道MVC能不能直接绑定?

问题补充:

发一下代码,大家看看代码应该就能懂我的意思。

实体类:

/// <summary> 测试实体类 </summary>
public class TestViewModel
{
/// <summary> 性别 </summary>
public string Sex { get; set; }
}

 

Controller:

public class DataBindController : Controller
{
//
// GET: /DataBind/

public ActionResult Index()
{
TestViewModel viewModel=new TestViewModel();
viewModel.Sex = "女";
return View(viewModel);
}
}

 

View:

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>下拉框绑定</title>
</head>
<body>
<div>
<span>性别:</span><input type="text" value="@Model.Sex" style="text-align: center;width: 25px;"/>
<select id="Sex" name="Sex">
<option value="请选择">保密</option>
<option value="男">男</option>
<option value="女">女</option>
</select>
</div>
</body>
</html>

 

我想要的就是 Controller 里面设置的值能对应上 View 里下拉框的值。麻烦大家了,谢谢!

晓菜鸟的主页 晓菜鸟 | 老鸟四级 | 园豆:2594
提问于:2014-07-03 10:48
< >
分享
最佳答案
0

如果是DropDownListFor,那么只要实体属性有值,就会自动绑定了。
如果是DropDownList,那么需要在需要绑定的SelectListItem上,加上{Selected=true}

收获园豆:20
幻天芒 | 高人七级 |园豆:37205 | 2014-07-03 11:21

 你没看问题描述吗?不绑定整个List集合,只是把取到的属性值绑定都页面上的下拉框中.

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-03 11:23

@晓菜鸟: 必须要设定一个List~

幻天芒 | 园豆:37205 (高人七级) | 2014-07-03 11:29

@幻天芒: 不会吧,您的意思是说无法直接绑定?

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-03 11:35

@晓菜鸟: 必须要设定一个下拉项的SelectList 或者 IEnumerable<SelectListItem>。如果你只想绑定一个,那么可以只添加一个值到其中。

幻天芒 | 园豆:37205 (高人七级) | 2014-07-03 11:40

@幻天芒: 我是只要绑定一个值,但是页面上呈现给用户的是一个下拉列表,因为用户可以选择修改,所以...

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-03 12:00

@晓菜鸟: 那就是直接DropDownListFor就行了啊~自动会绑定上的。

幻天芒 | 园豆:37205 (高人七级) | 2014-07-03 13:33

@幻天芒: 大哥,我很感谢您耐心的回答,但是我要的是 能不能不通过List集合就把值给绑定上去。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-04 13:07

@晓菜鸟: 据说所知,默认是不能的。你要么用js,要么自定义一个Helper方法。

幻天芒 | 园豆:37205 (高人七级) | 2014-07-04 13:47

@幻天芒: 首先我表示抱歉,这几天没怎么上博客,今天才回复您,真是不好意思,感谢您的回答,自己写一个 Helper 方法,我的实现思路也是通过Js来实现的,大哥你有什么好一点的建议吗?

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-08 11:57

@晓菜鸟: 其实我觉得没啥意义,本身提供的就满足你的需求,只需要提供一个List即可,又何必再去动手搞一个呢。从select这个标签来说,就需要一个option数组和一个selectedValue。

幻天芒 | 园豆:37205 (高人七级) | 2014-07-08 13:57

@幻天芒: 好吧,只是这样对于我的具体情况来说麻烦了些,谢谢你了。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-08 14:06

@晓菜鸟: 那你重写的时候,只需要在你的方法内部构造一个List,然后再调用DropDownListFor就行了。更简单!

幻天芒 | 园豆:37205 (高人七级) | 2014-07-08 14:31

@幻天芒: 谢谢你的回答。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-08 14:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册