2017-06-05 57 views
2

我知道,這是基本的,但後來我又想不出答案這一個...發送複雜的數據類型,以查看

我想送字符串,int值作爲一個ViewData的價值以查看

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

但我不知道如何將它投入View中。

如果我仍然在控制我會簡單的訪問是

varName.StringName 
varName.IntValue 

我知道如何使視圖模型類和視圖投它,我知道我可以給這兩個ViewData的值等,但我認爲這是可以做到簡單 和obvioulsy我缺乏基本的C#知識

+0

有什麼問題? – Imad

+0

@ ViewBag.TypeOfPaymentSelected.StringName將不起作用 – iivkovic

+0

@ViewData [「TypeOfPaymentSelected」]。StringName – Esko

回答

0

您可以使用匿名類型,如果你想,但隨後你需要使用例如EVAL-方法來訪問它的觀點:

@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)