通过AJAX将HTML动态插入View
本文关键字:插入 View 动态 HTML AJAX 通过 | 更新日期: 2023-09-27 18:21:28
在我看来,当从下拉菜单中选择用户的姓名时,我想插入一个HTML表,详细说明用户的设备。我想在不重新加载页面的情况下完成这项工作,所以我正在寻找一个AJAX解决方案。我目前的解决方案运行良好,但我认为一定有更好的解决方案。
我使用的jQuery是这样的(目前只是使用<p>
标签,如果我试图在其中编写HTML表,会变得非常混乱):
$.getJSON(url, { networkName: $('#Incident_Caller_DomainUserID option:selected').text() }, function (data) {
$('#EquipmentList').empty();
$.each(data, function (index, optionData) {
$('#EquipmentList').append('<p>' + optionData.Product + '</p>');
});
});
哪个对AjaxData控制器中的GetCallerEquipment Action执行POST请求
public JsonResult GetCallerEquipment(string networkName)
{
JsonResult result = new JsonResult();
result.Data = repository.GetCallerEquipment(networkName);
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
我可以用局部视图吗?这似乎是最好的方法,但我不知道从哪里开始,所以请提供一些建议或链接到示例或教程。
谢谢。
局部视图会很好。
只要让你的控制器返回一个,然后做这样的事情:
$.get('@Url.Action("YourActionName", "YourControllerName")',
{ anydata: youmaywanttopass },
function(result) {
$("#EquipmentList").html(result);
}
);
就是这样。get请求返回的"结果"将是您的部分视图html。
我可以用局部视图吗?
当然:
public ActionResult GetCallerEquipment(string networkName)
{
var model = repository.GetCallerEquipment(networkName);
return PartialView(model);
}
然后在你的GetCallerEquipment.cshtml
部分:
@model SomeViewModel
<table>
...
</table>
然后:
var networkName = $('#Incident_Caller_DomainUserID option:selected').text();
$('#someContainer').load(url, { networkName: networkName });