我有一个使用布局页面的索引页面。在索引页面上,我有一个下拉列表和一个div部分 用于托管部分视图。我是这样做的,因为我计划有大约4个链接和4个链接 将加载不同的部分视图。
<div class="selectOption1" id="custNum">
<label for="ddlCustomerNumber">Customer #:</label>
<select id="ddlCustomerNumber" name="ddlCustomerNumber">
<option value="1001">1001</option>
<option value="1002">1002</option>
<option value="1003">1003</option>
<option value="1004">1004</option>
</select>
</div>
<div id="pageContent"></div>
在html的脚本部分,我正在进行Ajax调用 这将获取jason数据,然后绑定检索到的字段 在我加载的局部视图中存在的控件上。这个简单的手段 在我的部分视图中,我有customerfirstname,customerlastname和address的文本框。
$('#ddlCustomerNumber').change(function () {
$.ajax({
url: '@Url.Action("PopulateTextBoxes", "Home")',
type: "GET",
data: {
"customerNumber": $(this).val(),
"Country": $("#divcountry").text().trim()
},
success: function (data) {
if (data != null) {
for (var x = 0; x < data.length; x++) {
$("#Customerfirstname").val(data[x].customerfirstname);
$("#Customerlastname").val(data[x].Customerlastname);
$("#Address").val(data[x].Address);
}
}
}
});
});
这是获取我计划绑定到控件的json数据的方法 在我的部分观点中。
public ActionResult PopulateTextBoxes(Int32 customerId, string country)
{
try
{
var relatedCustomerInfo = GetOtherCustomerInfo(customerId, country, sRadSelection);
return Json(relatedCustomerInfo, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
logger.Error(ex);
return View("Error");
}
}
问题:我知道我可以从PopulateTextBoxes方法返回一个partialview,但因为我已经 返回json这是不可能的。如何将此json数据返回到部分视图。
答案 0 :(得分:0)
看一下这个链接 - How to load partial views in MVC using AJAX
这是另一个例子:
Java脚本:
$.get( '@Url.Action("PopulateTextBoxes","Home", new { customerId = Model.ID } )', function(data) {
$('#outputContainer').html(data);
});
<强>控制器:强>
public ActionResult PopulateTextBoxes(Int32 customerId, string country)
{
try
{
var relatedCustomerInfo = GetOtherCustomerInfo(customerId, country, sRadSelection);
return PartialView("~/Views/Home/_Partial.cshtml",relatedCustomerInfo);
}
catch (Exception ex)
{
logger.Error(ex);
return View("Error");
}
}
可能需要稍微调整一下才能让它按照你想要的方式工作,但似乎你知道MVC已经足够正确了