ASP.NET MVC 3 用户下拉列表
在我的应用程序中,我已将我的 UserId
关联到数据库中的一个表。我需要在创建新项目时可以从下拉列表中选择用户名。 '可以用元素 viewbag 来做到这一点吗?
@Html.EditorFor(model => model.UserId)
我使用默认的成员资格提供程序,因此无法使用实体框架来解决此问题
编辑
编辑2
这是我的操作创建:
[HttpPost]
public ActionResult Create(Employe employe)
{
var users = Roles.GetUsersInRole("Admin");
SelectList list = new SelectList(users);
ViewBag.Users = list;
if (ModelState.IsValid)
{
**employe.EmployeID = users;**
db.Employes.Add(employe);
db.SaveChanges();
}
这不起作用。错误是:
无法将类型“string[]”隐式转换为“string”
我的 Employee
public class Employee
{
[Key]
public int EmployeID { get; set; }
public Guid UserId { get; set; }
public string Name { get; set; }
[ForeignKey("UserId")]
public virtual MembershipUser User
{
get
{
return Membership.GetUser(this.Name); //Changed this to Name
}
}
}
}
视图模型:
@Html.DropDownList("Users", ViewBag.Users as SelectList);
UserId
字段中的结果不是 UserId
但是这个000000-000000-0000000-00000
In my application I have associated my UserId
to a table in my database. I need that when I create a new item I can choose the user name from a dropdownlist. And 'possible to do this with the element viewbag?
@Html.EditorFor(model => model.UserId)
I use default membership provider so I can't use Entity Framework for this problem
EDIT
EDIT 2
This is my action create:
[HttpPost]
public ActionResult Create(Employe employe)
{
var users = Roles.GetUsersInRole("Admin");
SelectList list = new SelectList(users);
ViewBag.Users = list;
if (ModelState.IsValid)
{
**employe.EmployeID = users;**
db.Employes.Add(employe);
db.SaveChanges();
}
This does not work. The error is:
Cannot implicitly convert type 'string[]' to 'string'
My model for Employee
public class Employee
{
[Key]
public int EmployeID { get; set; }
public Guid UserId { get; set; }
public string Name { get; set; }
[ForeignKey("UserId")]
public virtual MembershipUser User
{
get
{
return Membership.GetUser(this.Name); //Changed this to Name
}
}
}
}
View:
@Html.DropDownList("Users", ViewBag.Users as SelectList);
My result in UserId
field isn't a UserId
but this 000000-000000-0000000-00000
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如何将用户列表设置为 ViewBack 中的 SelectItem
是的,您应该能够通过将集合传递到 ViewBag,然后从中创建下拉菜单来完成此操作:
在您的控制器中
在您的视图中(如果您使用的是 Razor)
在此处阅读有关 SelectListItem 的更多信息:
另请查看:
问题变成了更多问题。这是我解决问题的想法:
控制器:
视图
How to set a list of users as a SelectItem in the ViewBack
Yes, you should be able to do this by passing your collection to the ViewBag and then create you dropdown from it:
In your controller
In your View (If you're using Razor)
Read more about SelectListItem here:
Also check out:
Question changed to something more. Here is my idea to solve the issue:
Controller:
View