Asp.net mvc 在MVC中将数据从视图传回HttpPost方法
好的,我想把数据从视图传回控制器中的Post方法 观点:Asp.net mvc 在MVC中将数据从视图传回HttpPost方法,asp.net-mvc,ienumerable,Asp.net Mvc,Ienumerable,好的,我想把数据从视图传回控制器中的Post方法 观点: @model IEnumerable< MvcMobile.Models.Trips> <p>Time : @ViewBag.titi</p> <p>ID :@ViewBag.iid </p> <p>From : @ViewBag.From</p> <p>To :@ViewBag.To </p> Avaibliabe
@model IEnumerable< MvcMobile.Models.Trips>
<p>Time : @ViewBag.titi</p>
<p>ID :@ViewBag.iid </p>
<p>From : @ViewBag.From</p>
<p>To :@ViewBag.To </p>
Avaibliabe Trips :
@foreach (var item in Model)
{
if ( item.Time==ViewBag.titi)
{
<p>@item.TripID</p>
}
}
在这种情况下,我不能使用动态对象传递变量,因为模型是IEnumerable
我想把一个或两个文本框传回控制器,我该怎么做
另一个问题是如何在视图中执行相同的功能,而不使模型IEnumberable
非常感谢。您应该仔细阅读视图模型的使用。基本上,最好的做法是只将相关数据传递给视图。因此,在传递IEnumerable的模型时,您将拥有一个视图模型,该视图模型的属性为IEnumerable,加上您希望发回控制器的额外属性 例如:
public class ViewModel
{
public IEnumerable<MvcMobile.Models.Trips> Trips { get; set; }
public string ExtraValue { get; set; }
}
你可以阅读更多关于视图模型的信息,或者通过搜索Google/SO。有很多很多例子。您应该仔细阅读视图模型的使用。基本上,最好的做法是只将相关数据传递给视图。因此,在传递IEnumerable的模型时,您将拥有一个视图模型,该视图模型的属性为IEnumerable,加上您希望发回控制器的额外属性 例如:
public class ViewModel
{
public IEnumerable<MvcMobile.Models.Trips> Trips { get; set; }
public string ExtraValue { get; set; }
}
你可以阅读更多关于视图模型的信息,或者通过搜索Google/SO。有很多很多例子。我不知道如何使用ajax,这就是为什么我问这个问题,我想要一种传递数据的方法,关于对象,我不能做“html.textboxfor(u=>u.something)”,每当我键入它时就会出现错误。我不知道如何使用ajax,这就是为什么我问这个问题,我想要一种传递数据的方法,关于这个对象,我不能执行“html.textboxfor(u=>u.something)”,每当我键入它时都会显示一个错误。我刚刚尝试了这个方法,我得到了以下错误:“传递到字典中的模型项的类型是'System.Collections.Generic.List`1[MvcMobile.Models.Trips],但此词典需要“MvcMobile.Models.ViewModel1”类型的模型项。“知道吗?因为您仍在向视图传递db.Trips。您需要创建一个新的ViewModel,并将Trips属性设置为db.Trips
var viewModel=newviewmodel{Trips=db.Trips.ToList()};返回视图(viewModel)代码>我刚刚尝试了此操作,但出现了以下错误:“传入字典的模型项的类型为'System.Collections.Generic.List'1[MvcMobile.Models.Trips]”,但此字典需要'MvcMobile.Models.ViewModel1'类型的模型项。“知道吗?因为您仍在向视图传递db.Trips。”。您需要创建一个新的ViewModel,并将Trips属性设置为db.Tripsvar viewModel=newviewmodel{Trips=db.Trips.ToList()};返回视图(viewModel)代码>
@foreach(var trip in Model.Trips)
{
<p>Do stuff</p>
}
@Html.TextBoxFor(m => m.ExtraValue)
[HttpPost]
public ActionResult Book2(ViewModel viewModel)
{
}