2017-02-10 6 views
0

У меня есть небольшая проблема с C# ViewData.Обмен данными между видами

В первый взгляд, я зову:

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

А во втором я хочу поместить это значение переменной, как это:

var processType = ViewData["processType"]; 

Но, processType из словаря всегда нуль.

Прошу вас, вы знаете, что не так?

+0

Как вы определяете processtype и как вы посылаете его от контроллера? Попробуйте сделать нулевую проверку и присвоить var processtype только в том случае, если ViewData ["processType" "] isn't null –

ответ

-1

Вы можете использовать в приведенном ниже примере и положить в файл и запустить программу После понять, как для передачи данных между контроллером и просмотреть с помощью 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); 

@Put В CONTROLL Создание Просмотр файла @

<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

Вы используете this overload из EditorFor(), где третий параметр (additionalViewData) является TypeOf object, не TypeOf ViewDataDictionary. Из документов (курсив мой)

additionalViewData
Тип: System.Object
анонимный объект, который может содержать дополнительные данные представления, будут объединены в ViewDataDictionary < TModel> экземпляр, который создается для шаблона.

Изменить метод

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

и в шаблоне

@{ var processType = ViewData["processType"]; } 
<div>@processType</div> // renders "ABC" 

 Смежные вопросы

  • Нет связанных вопросов^_^