两个相同的模型在一个视图MVC中

时间:2015-12-23 12:41:11

标签: c# asp.net-mvc

我的网站上有一张表格。该表单包含有关两个本地化的信息。第一个本地化称为FROM,第二个称为TO。 在我看来,我正在使用

@model DDP.Models.Localization

这是我的本地化实体:

public class Localization
{
    [Key]
    public int ID { get; set; }
    [Required]
    public string Province { get; set; }
    [Required]
    public string City { get; set; }
    [Required]
    public string PostalCode { get; set; }

    public string StreetAdres { get; set; }
}

问题是我想传递给我的控制器两个本地化实例,如下所示:

public ActionResult AddRoute(Localization from, Localization to)
{
    return View();
}

当我想要像下面这样做时会出现问题,因为我有两个相同的模型。

@Html.TextBoxFor(model => model.City, new { @id = "cityFrom", @class = "form-control", @placeholder = "Miasto", @style = "margin-bottom: 10px;" })

可以向我展示正确的方向吗? 谢谢!

1 个答案:

答案 0 :(得分:3)

创建一个托管两个实例的viewModel,并将其用于您的视图。

namespace DDP.ViewModels
{
    public class vm
    {
        Localization L1 {get; set;}
        Localization L2 {get; set;}
    }
}

并将其用于您的视图中:

public ActionResult AddRoute(Localization from, Localization to)
    {
        DDP.ViewModels.vm ret = new DDP.ViewModels.vm() { L1 = from, L2 = to};
        return View(ret);
    }


@model DDP.ViewModels.vm

@Html.TextBoxFor(model => model.L1.City, new { @id = "cityFrom", @class = "form-control", @placeholder = "Miasto", @style = "margin-bottom: 10px;" })

(我实际上没有测试代码,我只是在编辑器中输入它可能会有一些错误,但希望它能让你走上正确的道路!)