控制器中可从下拉列表中的后操作获得的内容
本文关键字:操作 下拉列表 控制器 | 更新日期: 2024-08-10 03:25:02
试图解包一些继承的代码,而我是ASP.NET的新手。我的问题是:
从C#(ASP.NET MVC5)中的下拉列表中的后操作,控制器中有什么可用
以下是我的看法:
@using (Html.BeginForm("SignUp", "Location", FormMethod.Post))
....
@Html.DropDownListFor(
model => model.Member.PillarId, new SelectList (Model.Pillars, "Id", "Title"))
这是MemberViewModel
:
public class MemberViewModel : IValidatableObject{
public int? LocationId { get; set; }
public int? PillarId { get; set; }
}
这是Member
型号:
public class Member
{
public int Id { get; set; }
public string Name { get; set; }
public int? LocationId { get; set; }
public int? PillarId { get; set; }
public String PillarTitle { get; set; }
以下是Member
模型构造函数:
public Member() { }
public Member(MemberViewModel member)
{
PillarId = member.PillarId;
///
}
这是控制器
public ActionResult SignUp(MemberViewModel member){///}
我的表单正确地从数据库中提取信息以显示,并通过控制器正确地发布到数据库。我不想更改用户可供选择的视觉选项(即,我认为ListBox已过时?)。
相反,我希望根据Member.PillarId
和Member.Title
的选择来分配它们,并在Controller
中为非DB操作提供它。
Controller
中的SignUp
方法中当前可用的是什么?我可以打Model.Pillars.Title
吗?是member.PillarId.Pillars.Id
吗?如果没有,如何根据用户选择动态分配?
这段代码中有很多视图和模型视图,我不确定有什么可用的。。。
SO在DropDownList上有很多答案,所以这里有一些文章样本,这些文章与我所获得的内容有些相关…
*此答案
*列表框
*ListBoxFor:不是MVC动态
*SelectList构造函数:非MVC
对于下拉列表,在过帐时返回的唯一值是所选项目的值。
如果你想返回其他内容,你需要在页面上有一个隐藏字段,并将更改事件侦听器绑定到下拉列表,以在隐藏字段中设置标题
public class MemberViewModel : IValidatableObject{
public int? LocationId { get; set; }
public int? PillarId { get; set; }
public string Title { get; set;}
}
@using (Html.BeginForm("SignUp", "Location", FormMethod.Post))
....
@Html.DropDownListFor(
model => model.Member.PillarId, new SelectList (Model.Pillars, "Id", "Title"))
@Html.HiddenFor(model => model.Title);
javascript
$('#idofdropdown').on('change', function()
{
var selectedTitle = $(this).find(":selected").text();
$('#Title').val(selectedTitle);
});
如何从下拉列表中获取选定标题:使用jQuery 从下拉列表(选择框)中获取选定文本
然后在您的控制器中,您的视图模型将在标题字符串中包含标题文本:)