0

我正在开发一个 MVC4 应用程序。在按钮的提交操作中,我正在调用一个控制器操作,它会将数据作为 Json 返回给我。表中的行数取决于服务返回的行数。

我创建了一个新的视图模型来支持这一点。

public class DataResponse
{
    public List<ALSResult> Result { get; set; }
    public string ResponseText {get;set;}
}
public class ALSResult
{
    public string Name {get;set;}
    public string DataResult {get;set;}
}

控制器动作

[HttpPost]
public ActionResult Submit(CViewModel calcModel)
{
    try
    {
        DataResponse response = cRepository.GetDetails(calcModel.SelectedPlan,calcModel.EquipmentPrice,calcModel.DownPayment);
        return Json(response, JsonRequestBehavior.DenyGet);
    }
}

js文件

$("#Submit").click(function () {
    other code here
    Process("/DPPC/Submit", "POST", JSON.stringify(model), "json", "application/json;charset=utf-8", logError, InvokeSuccess);
}

function InvokeSuccess(result) {
    i will get json result in result filed
}

索引.cshtml

<table id="tblResults">
    <tr>
         <td id="tdResultEt"></td>
         <td id="tdResultEtPrice"></td>
    </tr>
    <tr>
         <td id="tdResultDt"></td>
         <td id="tdResultDtPrice"></td>
    </tr>
    more rows depending on the number of items in the JSON response
</table>

如何动态绑定来自服务的响应以为表创建行并绑定结果?

4

1 回答 1

0

我没有测试它,它可能包含语法错误

function InvokeSuccess(result) {

    var table = $("#tblResults");
    for(var i = 0; i < result.Result.lenght; ++i)
    {
        var item = result.Result[i];
        var newTr = $("<tr>");
        var newTd1 = $("<td>");
        var newTd2 = $("<td>");

        newTd1.text(item.Name);
        newTd2.text(item.DataResult);

        newTr.append(newTd1);
        newTr.append(newTd2);

        table.append(newTr);
    }
}
于 2013-10-16T18:35:12.040 回答