我在MVC3的View中有以下jQuery代码。我想在div(OffshoreECore
)中加载部分视图(名为#Form
),具体取决于在success函数中传递的JSON对象。这是代码:
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 ?!?*)');
}
感谢。
答案 0 :(得分:2)
load()
的第二个参数是data
,它应与请求一起发送到指定的URL。要发送您的JSON字符串,请尝试以下方法:
success: function (json) {
$('#Form').load('@Url.Action("OffShoreECore")', json);
}
您的示例代码也缺少来自'
中第二个键的inputParamtrs
分隔符和来自$
中选择器的success
,但我猜他们只是错字。
答案 1 :(得分: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;
}