Javascript 在div MVC中加载局部视图
我有一个按钮在我的MVC视图点击它,它应该添加一个“div”的部分视图,通过调用一个作为参数的对象的操作 我试过这样的东西:Javascript 在div MVC中加载局部视图,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个按钮在我的MVC视图点击它,它应该添加一个“div”的部分视图,通过调用一个作为参数的对象的操作 我试过这样的东西: $('#buttonId').onclick(function(){ $('#divid').load(@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass})) }); 但它在页面加载本身上加载actionresult/部分视图,而不是单击按钮 有什么想法吗?加载需要
$('#buttonId').onclick(function(){
$('#divid').load(@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass}))
});
但它在页面加载本身上加载actionresult/部分视图,而不是单击按钮
有什么想法吗?加载需要一个字符串,您正在生成一个变量路径 如果您查看源代码,它会生成如下内容:
$('#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
尝试使用
@Url.Action
而不是
@Html.Action
或者您可以使用ajax,例如:
$('#buttonId').click( function() {
$.ajax({
type: 'POST',
url: '@Url.Content("~/ControllerName/ActionName")',
data: objectToPass,
success: function (data) {
$('#divid').innerHTML = data;
}
});
}
$(文档).ready(函数(){
$('#buttonId')。单击(函数(){
$('#divid').load('@Url.Action(“About”,“Home”));
});
});
加载部分视图或任何URL
在div MVC 4中加载局部视图
最近,在做了大量的研发工作之后,我想在Div中加载Partal视图
$.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);
}
关于ajax调用成功函数append result ajax调用=>
url: 'controllername/methodname'
success: function (partialviewresult)
{
$('#div').append(partialviewresult);
}
// inside controller
public ActionResult methodname()
{
return PartialView("~/a/a.cshtml");
}
控制器必须返回partialview作为结果如何在URL中传递对象?-如果要向其添加字符串,而不是作为URL路径的对象/变量,请看最后一个示例,我正在调用partialview操作,该操作将对象作为参数,您要说的是提供部分视图URL而不是调用操作,那么我如何在URL中传递对象???您可以在代码中说
if Request.IsAjaxRequest(){return ParitalView….}
您需要URL.action
来获取URLHtml.Action
将执行该操作并返回查看结果。同样,您不能使用URl传递对象。Action此对象有多复杂?你能把身份证递给我吗?否则,将HttpPost对象作为json进行ajax调用,然后在响应处理程序中将html加载到div中。为了帮助解释,html.Action将生成并返回部分视图的html。如果您希望它立即运行,那么它的用途将有所不同(直接使用,而不是通过ajax。)URL。Action创建一个URL字符串,用于请求局部视图。因此,如果您希望浏览器调用ajax以获取和呈现内容,则需要使用URL。特别是如果您计划延迟/推迟通话,直到浏览器已经拥有主页。
url: 'controllername/methodname'
success: function (partialviewresult)
{
$('#div').append(partialviewresult);
}
// inside controller
public ActionResult methodname()
{
return PartialView("~/a/a.cshtml");
}