我有一个填充了电影列表的MVC下拉列表(Html.DropDownList)。当我执行表单提交时,我想同时检索标题(值域)、描述(文本域)。我可以访问标题(值域),但不能访问描述。我的代码示例如下。
//查看模型.....
公开课影院
{
public string CinemaName { get; set; }
public SelectList MoviesList { get; set; }
public string MoviesName { get; set; }
}
公共类电影
{
public string Title { get; set; }
public string Description { get; set; }
}
//Controller
AcceptVerbs(HttpVerbs.Get)
public ActionResult Index()
{
Cinema _cinema = GetViewModel();
ViewData.Model = _cinema;
return View();
}
public IEnumerable<Movie> GetMovieList()
{
List<Movie> list = new List<Movie>();
list.Add(new Movie(){ Title = "1", Description = "Batman" });
list.Add(new Movie() { Title = "2", Description = "Metrix" });
list.Add(new Movie() { Title = "3", Description = "Jaws" });
return list;
}
public Cinema GetViewModel()
{
var cinema = new Cinema();
cinema.CinemaName = "Village";
cinema.MoviesList = new SelectList(GetMovieList(), "Title", "Description", "Jaws");
return cinema;
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Update(Cinema _cinema)
{
//Here I need both value and the text field from the selected item in the drop down
string movieName = _cinema.MoviesName;
return View();
}
//查看
“%>
Home Page
<% using (Html.BeginForm("Update", "Home"))
{ %>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">
http://asp.net/mvc</a>.
</p>
<%= Html.TextBox("CinemaName", Model.CinemaName)%>
<%= Html.DropDownList("MoviesName", Model.MoviesList)%>
<input type="submit" value="Submit" />
<% } Html.EndForm(); %>
} {
发布于 2010-02-08 03:42:23
表单发布只发送选择列表的值。你应该不需要其他任何东西。你应该能够从值中得到你想要的东西。
发布于 2010-02-08 04:26:42
首先考虑为什么你也需要文本...
从技术上讲,dropdown Id应该足以识别控制器端的选项:)
发布于 2010-02-10 05:13:54
根据你在这个帖子中的一个答案...
我需要文本,因为要在下一个视图中显示描述。而且,我不需要单独调用db来通过提供Id来获取文本字段。我也不想为了获取文本字段而将列表存储在内存中。有没有Javascript或jQuery的解决方案?
在我看来,您提到的这个“下一个视图”的控制器应该能够创建更新/新的视图模型,并将其返回到“下一个视图”。我个人发现,随着未来的变化,这更容易审查和修改。
您可以添加一个隐藏字段或文本框,使其text属性在下拉列表发生更改时随时更改。然后,这个新字段也将发送回您的控制器。
如果由我决定,我的控制器将用新视图所需的信息填充我的ViewModel。在我看来,像你所请求的信息那样使用隐藏字段就像是一种代码味道。
https://stackoverflow.com/questions/2217896
复制相似问题