Javascript 表格+;Ajax没有';我不能正常工作
表单+Ajax->精确DIV上的结果 3小时53分钟前|链接 嗨 我需要在DIV中可视化我的partialView(表单提交后的结果) 我有以下文件: 查看Man_por.cshtmlJavascript 表格+;Ajax没有';我不能正常工作,javascript,jquery,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 4,表单+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="divTabPortfolios">
enter code here@{Html.RenderAction("Load_portfoliosPartial","Management_portfolios");}
<div>
<div class="col-md4" id="divTabPortfolio">
<div>
...
当显示结果时,它将打开整个页面,而不是部分视图(_layout.cshtml+页面)等。。并且它不会更新指定的DIV
我如何解决它呢?使用@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>
@使用(Ajax.BeginForm(“SomeAction”、“YourController”、new{id=optionalParameters}、new AjaxOptions(){HttpMethod=“Post”、UpdateTargetId=“divTabPortfolio”}))
{
}
在MVC/Razor中,这种基本的Ajax后处理不需要您自己的jQuery/Ajax
只要您的操作方法返回PartialView
,您就不需要执行任何其他操作
正如所建议的,如果你可以发布更多的页面,这将有助于提供详细信息你可以在ASP代码之外发布呈现的HTML吗?假设问题不是服务器端,那么代码是不相关的,对像我这样不使用ASP编码的人来说是没有意义的。我不能从服务器复制和粘贴。你想做什么请参见?查看页面时按Ctrl+U。这就是我们想要的。请确保只获取相关的html并正确设置格式。如何定义
$.fn.valid
?为什么不使用@using(Ajax.beginForm())
而不是@using(html.beginForm())
?MVC支持开箱即用的Ajax表单。然后您提供操作、控制器和选择器(用于面板更新)…工作完成。抱歉,但我不理解以下原因:1)我需要更新另一个div节,与调用该方法的源节相关。(在上面的示例中,我看到您更新了同一个div)2)相对于Html.beginForm,使用Ajax.beginForm有哪些优势?(我认为问题在于渲染)3)我无法复制源,因为它位于远程服务器上,我没有授权:(这样,我如何在调用该div上的服务器时添加动画?1)您可以更新任何div。它不必是包含表单的div。它可以是表单中触发面板更新的一个按钮/链接。2) Ajax.BeginForm
执行您手动执行的所有Ajax异步/更新管道Html.BeginForm
只创建一个标准回发表单。3) 没有更好的榜样,很难提供好的帮助。您可能想尝试模拟一个虚拟页面/项目,以实现您想要的功能,然后发布这些内容。至于加载动画,Ajax.BeginForm
有一个LoadingElementId
选项,可以显示/隐藏包含加载动画的元素。谢谢您!
$(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;
});
});
<div id="divTabPortfolio">
@using (Ajax.BeginForm("SomeAction", "YourController", new { id = optionalParameters }, new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "divTabPortfolio" }))
{
}
</div>