相关疑难解决方法(0)

MVC 3 - Ajax.BeginForm完整回发

在下面的代码中,我使用Ajax.BeginForm异步发布数据到操作.调用该操作但结果将显示到新的网页.我看了很多例子.这似乎并不困难.我已经使这个例子非常简单地用于概念证明(poc),但我仍然看到一个新的页面显示.

调节器

  [HttpPost]
    [OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
    public string TestAjax(UserViewModel viewModel)
    {

        return viewModel.UserName;
    }
Run Code Online (Sandbox Code Playgroud)

视图

@model BasicMvc3Example2.Models.UserViewModel

@{
    ViewBag.Title = "Index2";
    Layout = null;//"~/Views/Shared/_Layout.cshtml";
}

      <script src="/BasicMvc3Example2/Scripts/jquery-1.4.4.js" type="text/javascript"></script>
    <script src="/BasicMvc3Example2/Scripts/jquery-ui.js" type="text/javascript"></script>
    <script src="/BasicMvc3Example2/Scripts/jquery.validate.js" type="text/javascript"></script>
    <script src="/BasicMvc3Example2/Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>
    <h2>Index2</h2>

    <script type="text/javascript">
        function PostFailure(){
            alert("Failure");
        }

        function PostSuccess(){
            alert("Success");
        }

        function PostOnComplete() {
            alert("Complete");
        }
    </script>

    Page Rendered: @DateTime.Now.ToLongTimeString()
    @using (Ajax.BeginForm("TestAjax", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "textEntered", OnFailure = "PostFailure", OnSuccess = "PostSuccess", OnComplete = "PostOnComplete" …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3

35
推荐指数
2
解决办法
3万
查看次数

MVC3 Ajax.BeginForm OnSuccess无法在Firefox中运行

最终编辑:

在听完Darin Dimitrov的回答之后,我发现问题最终是对Controller方法的AJAX调用UpdateForm()返回一个空字符串.这是我在遇到不同问题后不久前发现必要的修改.传递一个空字符串导致Firefox的解析器窒息(而Chrome和IE显然不在乎),所以我用空字符串替换了空字符串div.

编辑:

感谢Darin Dimitrov在下面提出的建议,我发现我遇到麻烦的原因是每当提交相关表格时都会抛出错误.

JQuery错误

错误显示"节点无法插入层次结构中的指定点".每次提交表单时都会抛出此内容.我在POST数据中注意到它似乎认为这是一个XMLHttpRequest.这是原因(有问题的AJAX请求只是返回HTML)?这是来自Firebug的POST数据:

POST数据1

POST数据2

POST数据3

此错误显示"XML解析错误 - 未找到元素".

仅供参考 - 返回的HTML始终为空字符串...


我有一个在IIS7上运行的MVC3应用程序.在我的一个视图中,我有一个使用Microsoft HTML帮助函数构建的表单:

@using (Ajax.BeginForm("UpdateForm", new AjaxOptions { UpdateTargetId = "TargetDiv", InsertionMode = InsertionMode.InsertAfter, OnSuccess = "ClearTextBox" }))
{
    @Html.TextArea("txtInput", new { id = "txtInput", cols = "20", rows = "5", wrap = "virtual" })
    <input id="send" class="button" type="submit" value="Send"/><br />
} 
Run Code Online (Sandbox Code Playgroud)

当Controller提供此视图时,这将生成以下HTML:

<form action="/RootName/ControllerName/UpdateForm" data-ajax="true" data-ajax-mode="after" data-ajax-success="ClearTextBox" data-ajax-update="#TargetDiv" id="form0" method="post">
     <textarea cols="20" id="txtInput" name="txtInput" rows="5" wrap="virtual"></textarea>    
     <input id="send" class="button" type="submit" value="Send"><br>
</form>
Run Code Online (Sandbox Code Playgroud)

我在这里基本上要做的是获取被 …

c# forms ajax firefox asp.net-mvc-3

6
推荐指数
1
解决办法
2348
查看次数

标签 统计

asp.net-mvc-3 ×2

ajax ×1

asp.net-mvc ×1

c# ×1

firefox ×1

forms ×1