点击它我的MVC视图上有一个按钮,它应该在'div'中添加一个局部视图,通过调用一个以对象作为参数的动作
我试过这样的事情:
$('#buttonId').onclick(function(){
$('#divid').load(@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass}))
});
但它会在页面加载时加载actionresult / partial视图而不是单击按钮
任何想法?
答案 0 :(得分:21)
尝试使用
@Url.Action
而不是
@Html.Action
或者您可以使用ajax,例如:
$('#buttonId').click( function() {
$.ajax({
type: 'POST',
url: '@Url.Content("~/ControllerName/ActionName")',
data: objectToPass,
success: function (data) {
$('#divid').innerHTML = data;
}
});
}
答案 1 :(得分:8)
在div MVC 4中加载部分视图
最近我想在做了很多R& D并且它为我工作之后加载Div中的Partal View
$.ajax({
type: 'POST',
url: '@Url.Content("~/ControllerName/ActionName")',
data: {
title: title
},
success: function(result) {
$('#divid').innerHTML = result;
}
});
在部分视图操作控制器代码中
public PartialViewResult ShowCategoryForm(string title)
{
Model model = new Model();
model.Title = title;
return PartialView("~/Views/ControllerName/PartalView.cshtml", model);
}
答案 2 :(得分:7)
<script type="text/javascript">
$(document).ready(function () {
$('#buttonId').click(function () {
$('#divid').load('@Url.Action("About", "Home")');
});
});
</script>
<a id="buttonId">Load partial view or Any URL</a>
<div id="divid" style="height:100px; width:400px";>
</div>
答案 3 :(得分:3)
load需要一个字符串,您正在生成一个变量路径 如果您查看源代码,它会生成如下内容:
$('#buttonId').click(function(){
$('#divid').load(yoururl/);
});
但你想要的是:
$('#buttonId').click(function(){
$('#divid').load("yoururl/");
});
代码应如下所示:
$('#buttonId').click(function(){
$('#divid').load('@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass})');
});
但正如我所看到的那样,负载应该正常工作,直到您点击#buttonId
答案 4 :(得分:0)
在ajax调用成功函数上追加结果
ajax电话=>
url: 'controllername/methodname'
success: function (partialviewresult)
{
$('#div').append(partialviewresult);
}
// inside controller
public ActionResult methodname()
{
return PartialView("~/a/a.cshtml");
}
并且控制器必须返回partialview作为结果