表单+ Ajax - >精确DIV的结果 3小时53分钟前|链接
您好,
我需要在DIV中可视化我的partialView(表单提交后的结果)。
我有以下文件:
查看Man_por.cshtml
...
<div class="col-md4" id="divTabPortfolios">
enter code here@{Html.RenderAction("Load_portfoliosPartial","Management_portfolios");}
<div>
<div class="col-md4" id="divTabPortfolio">
<div>
...
查看Load_portfolios_partial
<script src="myscript.js" type="text/javascript"></script>
....
...
@using ( @ Html.BeginForm() )
{
....
...
<button type="submit" class=".." value="Open"/>
}
脚本MyScript.js
$(function () {
$('form').submit(function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#divTabPortfolio').html(result);
}
});
}
return false;
});
});
当它显示结果时它会打开整个页面而不是局部视图(_layout.cshtml + Page)等等。它不会更新指定的DIV。
我怎么能解决它?
答案 0 :(得分:0)
使用@using (Ajax.beginForm())
代替@using (Html.beginForm()
。
MVC支持开箱即用的Ajax表单。
然后你提供动作,控制器和选择器(UpdateTargetId
设置为要更新的面板的id),如下所示:
<div id="divTabPortfolio">
@using (Ajax.BeginForm("SomeAction", "YourController", new { id = optionalParameters }, new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "divTabPortfolio" }))
{
}
</div>
对于MVC / Razor中的这种基本Ajax回发,不需要你自己的jQuery / Ajax。
只要您的操作方法返回PartialView
,您就不需要执行任何其他操作。
根据建议,如果您可以发布更多页面,那么它将有助于提供详细信息