mvc传递元组数据作为参数

时间:2014-07-04 13:13:47

标签: asp.net-mvc tuples

我有这样的模型作为模型。

@model   Tuple<Urun,List<UrunKatagori>>

在视图中我需要将这些数据传递给控制器​​。

这是我的按钮。

 Html.X().Button().Text("Guncelle").Icon(Icon.PageSave)
       .DirectEvents(de =>
       {
           de.Click.Url = "Urunler/Guncelle";
        de.Click.ExtraParams.Add(new Parameter { Name = "Urun", Value ="Model.Item1", Mode = ParameterMode.Raw });//Iguess here is wrong
       })

和我的控制器

[HttpPost]
public  ActionResult Guncelle (Urun  Urun){

    Urun_BLL urun_bll = new Urun_BLL();

  //  urun_bll.Update(mdl);
    X.Msg.Notify(new NotificationConfig
    {
        Icon = Icon.Accept,
        Title = "Working",
        Html =Urun.Ad.ToString()//I need to get data here
    }).Show();


    return this.Direct();
}

1 个答案:

答案 0 :(得分:1)

我强烈建议您创建一个viewmodel类,而不是传递Tuple,例如

public class GuncelleViewModel
{
    public Urun Urun { get ;set; }
    public List<UrunKatagori>> UrunKatagori { get; set; }
}

然后你可以将它传递给视图:

[HttpPost]
public  ActionResult Guncelle (Urun  Urun)
{
    Urun_BLL urun_bll = new Urun_BLL();

  //  urun_bll.Update(mdl);
    X.Msg.Notify(new NotificationConfig
    {
        Icon = Icon.Accept,
        Title = "Working",
        Html =Urun.Ad.ToString()//I need to get data here
    }).Show();

    var viewModel = new GuncelleViewModel()
    viewModel.Urun = Urun;
    viewModel.UrunKatagori = // TODO - However you get the categories.

    return View(viewModel);
    // this.Direct(); What does this.Direct() do? Replace it with calling the view instead, much        cleaner.
}

在视图中,使用以下模型

@model GuncelleViewModel

使用与视图文件(* .cshtml)一对一关联的viewmodel类是一种非常好的做法。它可以帮助您保持设计的清洁和灵活性,而不是传递特定的数据类型,例如Tuple