如何使用jQuery填充局部视图?结果:点击链接时没有任何事情发生。
<script type="text/javascript">
$(document).ready(function () {
$('.block').click(function () {
var id = this.id;
$.ajax({
url: "/Link/Link",
data: { Letter: id },
success: function (mydata) {
var dom = $(mydata);
$("#link").empty().append(dom);
},
type: "POST"
});
return false;
});
});
</script>
<a href="<%=Url.Action("Link",new {Letter="A"}) %>" id="A" class="block">A</a>
<a href="<%=Url.Action("Link",new {Letter="B"}) %>" id="B" class="block">B</a>
<div id="link">
<% Html.RenderPartial("LinkUC", ViewData["Letter"]); %>
</div>
控制器
public ActionResult Link(string Letter)
{
ViewData["Letter"] = LinkManagementRepository.GetAllOrganizationLinks(Letter);
return PartialView("LinkUC",ViewData["Letter"] );
}
答案 0 :(得分:1)
这究竟是什么:
return PartialView("LinkUC",ViewData["Letter"] );
为什么不使用强类型视图:
public ActionResult Link(string letter)
{
var model = LinkManagementRepository.GetAllOrganizationLinks(letter);
return PartialView("LinkUC", model);
}
摆脱这场ViewData
瘟疫。
答案 1 :(得分:0)
LinkManagementRepository.GetAllOrganizationLinks(Letter)是什么?我认为您不需要设置ViewData,而是直接返回repostiroy调用。
答案 2 :(得分:0)
您应该尝试使用.load
。
将其指向一个返回PartialViewResult
的操作,因此响应中的HTML将被加载到您调用它的包装集中。
e.g。 $('div#link).load('yourPartialViewResultAction', {Letter: id }, null);