2015-10-22 4 views
0

У меня есть раскрывающийся список в моем родительском представлении, и когда я выбираю значение, я хочу сохранить это значение и использовать его, когда я нажимаю кнопку в своем частичном представлении. В настоящее время, если я нажму кнопку в частичном представлении, у него не будет значения родительского представления. Однако, если я перейду выпадающий список в частичный вид, все будет хорошо, но я хотел бы сохранить его в своем родительском представлении.Как передать данные родительского представления при использовании частичного представления

Родитель View (Это где DropDownList является)

<div class="btn-toolbar"> 
    <div class="btn-group"> 
     <button type="button" class="btn btn-primary" id="FetchProcessId">Fetch Process Id</button> 
    </div> 
</div> 

<div class="col-md-3" style="@displayAdminLead"> 
    <div class="dropdown div-inline"> 
     @{ 
      var envlist = new List<SelectListItem>() 
      { 
       new SelectListItem() {Value = "OAK", Text = "OAK"}, 
       new SelectListItem() {Value = "QA", Text = "QA"}, 
       new SelectListItem() {Value = "PROD", Text = "PROD"} 


      }; 
     } 
     @Html.DropDownListFor(m => m.EnvironmentName, envlist, "Environment", new {@class = "form-control"}) 
    </div> 
</div> 


<div style="overflow: auto"> 
     @using (Html.BeginForm()) 
     { 
      <div id="FetchProcessIdDiv" style=""> 
       @Html.Action("FetchProcessId", Model) 
      </div> 
     } 
</div> 

Частичный вид

<table class="table table-hover"> 
    <tbody> 
     <tr> 
      <td>System Name:</td> 
      <td> 
       @Html.DropDownListFor(m => m.FetchProcessIdModel.SystemName, new SelectList(Model.FetchProcessIdModel.DropDownOptions, "valueId", "value")) 
      </td> 
      <td rowspan="2">@Html.TextAreaFor(m => m.FetchProcessIdModel.Message, 12, 50, null)</td> 
     </tr> 
     <tr> 
      <td>Deliverable Id:</td> 
      <td>@Html.TextBoxFor(m => m.FetchProcessIdModel.DeliverableId)</td> 
     </tr> 
    </tbody> 
</table> 

<input type="submit" name="submit" class="btn btn-default" value="Fetch Process Id" /> 

Родитель Модель

public class ParentModel 
{ 
    public string EnvironmentName { get; set; } 
} 

Контроллер

[HttpPost] 
    public ActionResult ParentClass(string submit, ParentModel model) 
    { 
     //omit 
     var envName = model.EnvironmentName; 
     //I am not seeing a value for model.EnvironmentName at this point 
    } 
+0

Пока выпадающий список находится в том же виде, что и кнопка отправки, он должен работать. Отправьте свой родительский код просмотра, включая форму и где вы загружаете частичный. – JB06

+0

@ JB06 Обновленный код –

ответ

1

Чтобы входной сигнал был передан его значению контроллеру, он должен находиться внутри элемента формы.

<div style="overflow: auto"> 
     @using (Html.BeginForm()) 
     { 
      <div class="btn-toolbar"> 
       <div class="btn-group"> 
        <button type="button" class="btn btn-primary" id="FetchProcessId">Fetch Process Id</button> 
       </div> 
      </div> 

      <div class="col-md-3" style="@displayAdminLead"> 
       <div class="dropdown div-inline"> 
        @{ 
         var envlist = new List<SelectListItem>() 
         { 
          new SelectListItem() {Value = "OAK", Text = "OAK"}, 
          new SelectListItem() {Value = "QA", Text = "QA"}, 
          new SelectListItem() {Value = "PROD", Text = "PROD"} 
         }; 
        } 

        @Html.DropDownListFor(m => m.EnvironmentName, envlist, "Environment", new {@class = "form-control"}) 
       </div> 
      </div> 


      <div id="FetchProcessIdDiv" style=""> 
       @Html.Action("FetchProcessId", Model) 
      </div> 
     } 
    </div> 
+0

Спасибо, что сработало !! –

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