将复杂数据类型发送到View

时间:2017-06-05 08:52:08

标签: asp.net-mvc

我知道这是基本的,但我再也无法找到答案......

我想将string和int值作为一个ViewData值发送到View

ViewData["TypeOfPaymentSelected"] = new { StringName = Enum.GetName(typeof(PaymentType), payment), IntValue = payment };

但我不知道怎么把它放在View里面。

如果我还在控制器中,那么简单的访问就是

varName.StringName 
varName.IntValue

我知道如何制作ViewModel类并将其转换为View,我知道我可以将其作为两个ViewData值等发送但我认为这可以更简单 并且显而易见我缺乏基本的C#知识

1 个答案:

答案 0 :(得分:0)

如果需要,您可以使用匿名类型,但是您需要使用例如Eval-method在视图中访问它:

@ViewData.Eval("TypeOfPaymentSelected.StringName")

this question/answer

中的更多信息

首选方法是使用模型,以便所有内容都是强类型的。

示例:

namespace Models
{
    public class MyModel
    {
        public string StringName;
        public int IntValue;
    }
}

控制器:

public ActionResult Index()
{
    ViewData["TypeOfPaymentSelected"] = new MyModel { StringName = "test", IntValue = 5 };
    return View();
}

在视图中:

@(((Models.MyModel)ViewData["TypeOfPaymentSelected"]).StringName)