2017-02-10 21 views
0

C#ViewDataに少し問題があります。最初のビューでビュー間でデータを共有する

は、私が呼び出しています:

@Html.EditorFor(m => m.IndividualModel, "_Individual", 
        new ViewDataDictionary { { "processType", "ABC" } }) 

そして第二に私はこのような変数にこの値を入れたい:

var processType = ViewData["processType"]; 

しかし、辞書からprocessTypeは常にnullです。

どうか間違っていると思いますか?

+0

の方法はどのようにPROCESSTYPEを定義しないと、どのように、コントローラからそれを送っていますか? ViewData ["processType" "]がnullではない場合に限り、NULLチェックを行い、var processtypeを割り当ててみてください –

答えて

-1

あなたは以下の実施例に使用し、ファイルに入れて、コントローラとビュー間のデータパスに

@表示ファイルを作成するにはControllに入れ @ ViewDataを++

// Put In C# Controller File 

List<string> petList = new List<string>(); 
petList.Add("Dog"); 
petList.Add("Cat"); 
petList.Add("Hamster"); 
petList.Add("Parrot"); 
petList.Add("Gold fish"); 
petList.Add("Mountain lion"); 
petList.Add("Elephant"); 

ViewData["Pets"] = new SelectList(petList); 

を使用してどのようにプログラムの実行には、後に理解することができます

<h2><%= Html.Encode(ViewData["Message"]) %></h2> 
<br /><br /> 
<% using(Html.BeginForm("HandleForm", "Home")) %> 
<% { %> 
    Enter your name: <%= Html.TextBox("name") %> 
    <br /><br /> 
    Select your favorite color:<br /> 
    <%= Html.RadioButton("favColor", "Blue", true) %> Blue <br /> 
    <%= Html.RadioButton("favColor", "Purple", false)%> Purple <br /> 
    <%= Html.RadioButton("favColor", "Red", false)%> Red <br /> 
    <%= Html.RadioButton("favColor", "Orange", false)%> Orange <br /> 
    <%= Html.RadioButton("favColor", "Yellow", false)%> Yellow <br /> 
    <%= Html.RadioButton("favColor", "Brown", false)%> Brown <br /> 
    <%= Html.RadioButton("favColor", "Green", false)%> Green 
    <br /><br /> 
    <%= Html.CheckBox("bookType") %> I read more fiction than non-fiction.   <br /> 
    <br /><br /> 
    My favorite pet: <%= Html.DropDownList("pets") %> 
    <br /><br /> 
    <input type="submit" value="Submit" /> 
<% } %> 

ありがとうございます。

+1

これは良い例ですが、実際には質問に答えません。 – Ben

+0

こんにちは、ありがとうございます。それは – Marek

+0

世界ではこれが質問と関係しています –

0

あなたの3番目のパラメータ(additionalViewData)はtypeof演算、typeof演算ViewDataDictionaryobjectない場合EditorFor()this overloadを使用。ドキュメントから(私の強調)

additionalViewData
タイプ:のSystem.Object
作成されたViewDataDictionary < TModelの>インスタンスにををマージされる追加のビューデータを含めることができます匿名オブジェクトテンプレートの

変更

@Html.EditorFor(m => m.IndividualModel, "_Individual", new { processType = "ABC" }) 

とテンプレートで

@{ var processType = ViewData["processType"]; } 
<div>@processType</div> // renders "ABC" 
関連する問題