2

嗨,我在一个名为 data 的变量中返回了以下 JSON。

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

我有一个使用 MasterBo 模型类生成的剃须刀页面。在那个 MasteBo 类中,我编写了以下代码

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 请求时,我需要如何将上述 Json 数据绑定到页面。

4

1 回答 1

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);
    }
});

并且控制器操作将返回部分视图而不是 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);
}
于 2013-04-25T06:17:39.997 回答