Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在MVC中将数据从视图传回HttpPost方法_Asp.net Mvc_Ienumerable - Fatal编程技术网

Asp.net mvc 在MVC中将数据从视图传回HttpPost方法

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

好的,我想把数据从视图传回控制器中的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 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.Trips
var 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) 
{
}