使用jQuery将模型属性分配给文本框

时间:2016-03-28 18:01:12

标签: c# jquery asp.net-mvc

我不确定这是否可行,但我想使用jQuery将绑定模型中的值分配给PartialView中的不同文本框。

最初在页面加载时,它会正确填充所有模型信息。但是,我想实现一个DDL来查看历史更新(从我预先填充的数据库中检索)。

我可以在我各自的控制器中调用一个Action方法,该方法接受revisionID。我已经验证该方法正在返回正确的数据。

请参阅下面的我的代码段:

部分视图

$('#revisionDDL').change(function () {
    var selectedRevisionID = $(this).val();

    if (selectedRevisionID == '') {
        selectedRevisionID = @Model.RevisionID - 1;
    }

    var url = '@Url.Action("GetAgreementByRevision")';

    $.get(url, { revisionID: selectedRevisionID }, function () {
        $('#ChangeReason').val('@Model.ChangeReason');
    })
});

输入元素:

<div class="input-group">
    <span class="input-group-addon" id="change-reason">Change Reason</span>
    @Html.TextAreaFor(m => m.ChangeReason, new { @class = "form-control", @rows = "1" })
</div>

控制器方法:

public ActionResult GetAgreementByRevision(int revisionID)
{
    Agreement revisedAgreement = new Agreement();

    revisedAgreement = _agreementService.GetAgreementDetailsByRevision(revisionID);

    return PartialView("AgreementDetailsFormPartial", revisedAgreement);
}

如果我无法做到这一点,那么我的其他选择是什么?

1 个答案:

答案 0 :(得分:2)

控制器中的方法返回importdata(),它返回HTML内容,并且您尝试将该HTML内容作为文本区域中的值传递 - 这不是它应该如何工作的。您应该返回PartialView,然后在JavaScript中访问此对象。

Json(revisedAgreement, JsonRequestBehavior.AllowGet);