2012-12-18 49 views
1

我无法成功地将我的部分视图中的值发布到我的操作 - 所有属性均为空。部分视图模型的值在提交时为null

局部视图型号:

public class AddressViewModel 
{ 
    public string ClientNumber { get; set; } 
    public string Line1 { get; set; } 
    public string Line2 { get; set; } 
    public string Line3 { get; set; } 
    public string Suburb { get; set; } 
    public string PostalCode { get; set; } 
} 

局部视图:

@model Models.AddressViewModel 
@{ 
    Layout = null; 
} 

@using (Html.BeginForm("UseAddress", "Home")) 
    { 
<div> 
    <table> 
     <tr> 
      <td> 
       <div class="display-label"> 
        @Html.DisplayNameFor(model => model.Line1) 
       </div> 
      </td> 
      <td> 
       <div class="display-field"> 
        @Html.DisplayFor(model => model.Line1) 
       </div> 
      </td> 
........ 
     </tr> 
    </table> 

    <input type="submit" name="UseAddress" id="submitbutton" value="Use Address" /> 

</div> 
} 

操作:

[HttpPost] 
[Authorize] 
public ActionResult UseAddress(AddressViewModel model) 
{ 
    return RedirectToAction("Index", "Home"); 
} 

局部视图是通过如下选择一个下拉在网页上呈现:

<script type="text/javascript"> 
    $(function() { 
     $('#AddressTypeDropdownList').change(function() {   
      var url = $(this).data('url');   
      $('#Address').load(url); 
     }); 
    }); 
</script> 

    @Html.DropDownListFor(
    x => x.SelectedAddressTypeId, 
    new SelectList(Model.AddressTypes, "Value", "Text"), 
    "-- Select Address Type --", 
     new 
     { 
      id = "AddressTypeDropdownList", 
      data_url = Url.Action("_Address", "Home") 
     } 
    ) 
    <div id="Address"></div>   


    public ActionResult _Address() 
    {   
     AddressViewModel addressViewModel = new AddressViewModel { 
      ClientNumber = "test"   
     };   

     return PartialView(addressViewModel); 
    } 

我希望UseAddress方法有model.ClientNumber == "test"当我点击提交按钮,但它是空的......有没有什么明显的,我做错了?

+0

您可以看看Request.Form并发布Keys数组中的内容 –

+0

Request.Form只有1个键:UseAddress和它的值==“使用地址” – woggles

回答

3

DisplayFor不会为该字段创建输入,因此不会发布。您需要添加

@Html.HiddenFor(model => model.Line1) 
.... 

要发布值。

+0

谢谢 - 这似乎解决它 – woggles