2013-04-25 48 views
2

嗨我有一个名为data的变量返回以下JSON。Json序列化到剃刀视图模型类的绑定

{"tblMaster":{"intMasterID":14,"intMasterRegionID":1,"intMasterDistrictID":1,"intMasterEduLevelID":2,"txtMasterName":"Kureme","txtMasterPreciseLocation":"bulinga","txtMasterPostalAddress":"bulinga},"txtproperty1":"null"} 

和我有一个生成的使用MasterBo Model类的剃须刀页面。 在这MasteBo类别i写的以下代码

public class MasteBo 
{ 
    public tblMaster tblMaster { get; set; } 
    public string tproperty1 { get; set; } 
} 

剃刀页代码

<div id="tabs-1"> 
    <table> 

     <tr> 
      <td>Region:</td> 
      <td style="width:255px"> 

       @Html.DropDownListFor(model => model.tblMaster.intMasterRegionID, (IEnumerable<SelectListItem>)ViewBag.intMasterRegionID, "--Select--", new { id = "tblMaster_intMasterRegionID",style="width:255px" }) 
     </td><td> @Html.ValidationMessageFor(model => model.tblMaster.intMasterRegionID)</td> 
     </tr> 
     <tr> 
      <td>District:</td> 
      <td style="width:255px"> 
       @Html.DropDownListFor(model => model.tblMaster.intMasterDistrictID, (IEnumerable<SelectListItem>)ViewBag.intMasterDistrictID, "--Select--")</td> 
      <td>@Html.ValidationMessageFor(model => model.tblMaster.intMasterDistrictID)</td> 
     </tr> 

     <tr> 
      <td>Education Level</td> 
      <td style="width:255px"> 
       @Html.DropDownListFor(model => model.tblMaster.intMasterEduLevelID, (IEnumerable<SelectListItem>)ViewBag.MasterEducationalLevels, "--Select--") </td> 
      <td> @Html.ValidationMessageFor(model => model.tblMaster.intMasterEduLevelID)</td> 
     </tr> 
     <tr> 
      <td>Master Name:</td> 
      <td style="width:255px"> 
        @Html.DropDownListFor(model => model.tblMaster.intMasterID, (IEnumerable<SelectListItem>)ViewBag.Masters, "--Select--")</td> 
      <td> @Html.ValidationMessageFor(model => model.tblMaster.txtMasterName)</td> 
     </tr> 
     <tr> 
      <td>Precise Location:</td> 
      <td> 
       @Html.EditorFor(model => model.tblMaster.txtMasterPreciseLocation)</td> 
      <td>@Html.ValidationMessageFor(model => model.tblMaster.txtMasterPreciseLocation)</td> 
     </tr> 
     <tr> 
      <td>Postal Address:</td> 
      <td> 
       @Html.TextAreaFor(model => model.tblMaster.txtMasterPostalAddress) </td> 
      <td>@Html.ValidationMessageFor(model => model.tblMaster.txtMasterPostalAddress)</td> 

     </tr> 

     <tr> 
    </table> 
</div> 

现在对AJAX请求的compleation如何NEDD结合上述JSON数据到页。

+0

您的视图如何看起来像? – 2013-04-25 04:24:07

+0

我在视图中的剃须刀代码 – user2318139 2013-04-25 05:30:59

回答

0

不是从控制器操作返回JSON,而是返回一个局部视图。因此,让我们把你已经在部分所示的内容:

_MyPartial.cshtml

@model MasteBo 
<table> 
    <tr> 
     <td>Region:</td> 
     <td style="width:255px"> 
      @Html.DropDownListFor(model => model.tblMaster.intMasterRegionID, (IEnumerable<SelectListItem>)ViewBag.intMasterRegionID, "--Select--", new { id = "tblMaster_intMasterRegionID",style="width:255px" }) 
     </td> 
     <td>@Html.ValidationMessageFor(model => model.tblMaster.intMasterRegionID)</td> 
    </tr> 
    <tr> 
     <td>District:</td> 
     <td style="width:255px"> 
      @Html.DropDownListFor(model => model.tblMaster.intMasterDistrictID, (IEnumerable<SelectListItem>)ViewBag.intMasterDistrictID, "--Select--")</td> 
     <td>@Html.ValidationMessageFor(model => model.tblMaster.intMasterDistrictID)</td> 
    </tr> 
    <tr> 
     <td>Education Level</td> 
     <td style="width:255px"> 
      @Html.DropDownListFor(model => model.tblMaster.intMasterEduLevelID, (IEnumerable<SelectListItem>)ViewBag.MasterEducationalLevels, "--Select--") </td> 
     <td>@Html.ValidationMessageFor(model => model.tblMaster.intMasterEduLevelID)</td> 
    </tr> 
    <tr> 
     <td>Master Name:</td> 
     <td style="width:255px"> 
      @Html.DropDownListFor(model => model.tblMaster.intMasterID, (IEnumerable<SelectListItem>)ViewBag.Masters, "--Select--")</td> 
     <td>@Html.ValidationMessageFor(model => model.tblMaster.txtMasterName)</td> 
    </tr> 
    <tr> 
     <td>Precise Location:</td> 
     <td> 
      @Html.EditorFor(model => model.tblMaster.txtMasterPreciseLocation)</td> 
     <td>@Html.ValidationMessageFor(model => model.tblMaster.txtMasterPreciseLocation)</td> 
    </tr> 
    <tr> 
     <td>Postal Address:</td> 
     <td> 
      @Html.TextAreaFor(model => model.tblMaster.txtMasterPostalAddress)</td> 
     <td>@Html.ValidationMessageFor(model => model.tblMaster.txtMasterPostalAddress)</td> 
    </tr> 
</table> 

而在你的主视图,你将包括渲染此部分:

<div id="tabs-1"> 
    @Html.Partial("_MyPartial") 
</div> 

好了,现在你可以有对某些控制器动作的AJAX请求:

$.ajax({ 
    url: '/somecontroller/someaction', 
    type: 'GET', 
    cache: false, 
    success: function(data) { 
     $('#tabs-1').html(data); 
    } 
}); 

and the controlle r操作将返回部分视图而不是JSON对象:

public ActionResult SomeAction() 
{ 
    MasteBo model = ... fetch your model the same way you were doing in the action that was returning JSON 
    return PartialView("_MyPartial", model); 
} 
相关问题