如何以Razor形式传递多个对象?

时间:2014-02-26 04:14:42

标签: c# asp.net-mvc asp.net-mvc-4 razor

我想通过Razor形式传递两个对象。怎么做? 这是我的实现

//控制器

public string MatchHotel(HotelPairToMatch HotelPair)
{
     return "Hotel matched successfully ";
}

//模型

public class HotelPairToMatch
{
    public MapHotel NewHotel { get; set; }
    public MapHotel MatchedHotel { get; set; }
}

//模板

 @foreach (Clarifi.UI.Models.MapHotel hotel in Model.MatchedHotelsList)
 {
    <tr>
        <td align="left" valign="middle" class="font13">
         @using (Html.BeginForm("MatchHotel", "MapNewHotel", new {NewHotel=Model.NewHotel,MatchedHotel=hotel }, FormMethod.Post, new { @class = "pull-left mrs" }))
         {                                
            <input type="submit" value="Match" class="submitLink"/>
         }
       </td>
  </tr>
}

2 个答案:

答案 0 :(得分:0)

您可以使用包含所需类的新类,并将其发送到您的视图。在MVC中,这被称为View Model,是一种将数据发送到视图的非常合适的方式。

如果那是你的控制器,你应该返回一个字符串,当你应该返回某种View(对象)时。

答案 1 :(得分:0)

你也可以提交像这样的对象

在视图中:

@using (Html.BeginForm("MatchHotel", "MapNewHotel", FormMethod.Post, new { @class = "pull-left mrs" }))
     {   
        @Html.Hidden("NewHotel ",Model.NewHotel)
         @Html.Hidden("MatchedHotel ","hotel")                 
        <input type="submit" value="Match" class="submitLink"/>
     }

控制器:

public ActionResultMatchHotel(HotelPairToMatch HotelPair)
{
   string newHotel = HotelPair.NewHotel;
   string Hotel = HotelPair.MatchedHotel;
}