Javascript 表格+;Ajax没有';我不能正常工作

Javascript 表格+;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>

表单+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>

...
当显示结果时,它将打开整个页面,而不是部分视图(_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>