Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 如何在不创建多个actionresults的情况下将字符串数组从控制器传递到视图MVC4?_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

Asp.net mvc 如何在不创建多个actionresults的情况下将字符串数组从控制器传递到视图MVC4?

Asp.net mvc 如何在不创建多个actionresults的情况下将字符串数组从控制器传递到视图MVC4?,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,我是mvc4新手,所以请放轻松,我正在尝试将多个目的地名称从控制器传递到我的视图。如何在不创建更多actionresults和对象的情况下完成此操作。我想使用字符串数组创建一个带有目标名称的表。这是可能的任何帮助将不胜感激。先谢谢你 Controller: public ActionResult Destinations() { string[] arrivalAirport = new string[4] { "london", "paris", "b

我是mvc4新手,所以请放轻松,我正在尝试将多个目的地名称从控制器传递到我的视图。如何在不创建更多actionresults和对象的情况下完成此操作。我想使用字符串数组创建一个带有目标名称的表。这是可能的任何帮助将不胜感激。先谢谢你

Controller:
public ActionResult Destinations()       
{           
   string[] arrivalAirport = new string[4] { "london", "paris", "berlin", 
                                                          "manchester" };            

   Destination dest = new Destination();            
   dest.arrivalName = arrivalAirport[2];      

   return View(dest);
 }

Model:
public class Destination    
{        
    public string arrivalName { get; set; }    
    public string arrivalCode { get; set; }
}

View:
@model Flight.Models.Destination

@{
  ViewBag.Title = "Destinations";
  Layout = "~/Views/Shared/_Layout.cshtml";
}
<table>
    <tr>
        <td>@Html.Label("Arrival Name")</td>
        <td>@Model.arrivalName</td>            
    </tr>
</table>
控制器:
公共行动结果目的地()
{           
string[]arrivalAirport=新字符串[4]{“伦敦”、“巴黎”、“柏林”,
“曼彻斯特”};
Destination dest=新目的地();
dest.arrivalName=arrivalAirport[2];
返回视图(dest);
}
型号:
公务舱目的地
{        
公共字符串arrivalName{get;set;}
公共字符串到达代码{get;set;}
}
视图:
@模型航班、模型、目的地
@{
ViewBag.Title=“目的地”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
@Html.Label(“到达名称”)
@Model.arrivalName

使用视图模型,您可以在其中定义视图所需的任何信息

public class ViewModel{
    public List<string> Airports { get; set; }
    public Destination destination { get; set; }
    etc...
}
@model ViewModel

@Html.TextBoxFor(x => x.Destination.arrivalName)
在你看来

public class ViewModel{
    public List<string> Airports { get; set; }
    public Destination destination { get; set; }
    etc...
}
@model ViewModel

@Html.TextBoxFor(x => x.Destination.arrivalName)

希望这会有所帮助

您的问题的措辞非常混乱,但听起来您希望将多个目标对象传递给视图。如果是这种情况,只需将多个目标对象传递给视图即可

控制器:

public ActionResult Destinations()       
{           
    string[] arrivalAirport = new string[4] { "london", "paris", "berlin", 
                                                          "manchester" };            
    var airports = new List<Destination>();

    foreach( var airport in arrivalAirport )
    {
        airports.Add( new Destination() { arrivalName = airport } );
    }   

    return View(airports);
}
public ActionResult Destinations()
{           
string[]arrivalAirport=新字符串[4]{“伦敦”、“巴黎”、“柏林”,
“曼彻斯特”};
var airports=新列表();
foreach(抵达机场的var机场)
{
Add(新目的地(){arrivalName=airport});
}   
返回视图(机场);
}
视图:

@型号列表
@foreach(模型中的var dest)
{
到达名称
@目的地到达名称
}

谢谢你,效果很好,是否可以添加其他信息,如航班号、时间等?对于同一个视图是否可能,或者我是否必须创建另一个actionresult?我不确定我是否理解这个问题,但可能是因为我不明白为什么您不能假设您可以继续向目的地添加更多属性,以便向视图发送您想要的任何内容。另外,如果它解决了您的问题,请投票并/或标记为答案。