返回视图时Ajax成功

时间:2012-03-02 11:16:43

标签: asp.net ajax asp.net-mvc-3

我正在努力用Ajax返回视图或部分视图。每当我将返回类型更改为不是JSon的东西时,ajax命令永远不会成功。我需要返回一个局部视图,因为我想要返回大量数据。

这是我目前的代码:

(控制器)

    [HttpPost]
    public ActionResult AjaxTestController(string Input)
    {
        string Results = Input + " -- TestTestTest";

        return PartialView("Test", Results);
        //return new JsonResult() { };
    }

(查看)

function AjaxTest() {
alert("test");
$.ajax({
    type: "POST",
    url: "Home/AjaxTestController",
    data: "Input=Test11111",        
    success: function () {
        alert("Success!");
    }
});

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用$ .post命令:

function AjaxTest() {
alert("test");
$.post({
    url: "Home/AjaxTestController",
    data: "Input=Test11111",        
    success: function (response) {
        alert(response);
    }
});

答案 1 :(得分:0)

尝试以下方法:

$(function () {
    $('#submit').live('click', function () {
        AjaxTest();
    });
});

function AjaxTest() {
    $.ajax({
        type: "POST",
        url: '@Url.Action("AjaxTestController", "Home")',
        data: { Input: "Test - " + new Date() },
        success: function (data) {
            $('#partialResult').html(data);
        },
        error: function (xhr, err) {
            alert(xhr.responseText);
        }
    });
};
在视图中

并确保为要填充的部分设置了目标div:

<div id="partialResult"></div>

另外,对于上面的示例,我在视图中添加了一个按钮以启动ajax(纯粹用于测试):

<input type="button" value="Submit" id="submit" />

你的“部分视图”应该是这样的:

@model string
<h2>
    Partial Test</h2>
<p>
    @Model
</p>

现有的操作不需要进行任何其他更改,现在可以根据需要进行操作。

[更新] - 我更改了AjaxTest()方法以包含错误事件(其结果在警报中捕获)。希望这可能会有所帮助。

答案 2 :(得分:0)

部分视图与视图不同,您必须指定部分视图的整个路径或将其放在共享文件夹中。否则将返回未找到但永远不会成功。这总是对我有用,试试

partialView("~/Views/ControllerView/Test.cshtml")