1

我在 MVC3 的视图中有以下 jQuery 代码。我想根据在成功函数中传递的 JSON 对象在OffshoreECorediv ( ) 中加载部分视图(名为 ) 。#Form这是代码:

var inputParamtrs = { 'HeadId': $('#ExpenseId').val(), MProjid': $('#MProjid').val() };
$.ajax({
    type: "POST",
    url: "/Expenses/Edit",
    data: inputParamtrs,
    success:  function (json) {
        ('#Form').load('@Url.Action("OffShoreECore", *What comes here ?!?*)');
    }

谢谢。

4

2 回答 2

2

的第二个参数load()data应与请求一起发送到指定 URL 的参数。要发送您的 JSON 字符串,请尝试以下操作:

success:  function (json) {
    $('#Form').load('@Url.Action("OffShoreECore")', json);
}

您的示例代码还缺少第二个键 in和选择器 in的'分隔符,但我猜它们只是拼写错误。inputParamtrs$success

于 2012-05-28T12:49:25.677 回答
0
$.getJSON("/Expenses/Edit",
    {
        HeadId: $('#ExpenseId').val(), 
        MProjid: $('#MProjid').val() 
    },
    function (data) {
        elementForResult.innerHTML = data;
    });

在控制器中:

public JsonResult Edit(int HeadId, int MProjid)
    {
        ...
        var result = SerializeControl("~/Views/Expenses/Edit.cshtml", null);
        return Json(result, JsonRequestBehavior.AllowGet);
    }

private string SerializeControl(string controlPath, object model)
    {
        var control = new RazorView(ControllerContext, controlPath, null, false, null);
        ViewData.Model = model;
        var writer = new HtmlTextWriter(new StringWriter());
        control.Render(new ViewContext(ControllerContext, control, ViewData, TempData, writer), writer);
        string value = writer.InnerWriter.ToString();
        return value;
    }
于 2012-05-28T12:52:18.530 回答