如何处理$ .ajax

时间:2011-03-07 10:37:08

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

我想将JSON数据发送到将更新某些数据的操作。然后,我想要重定向到另一个操作或向$ .ajax发回错误消息。

可以使用$ .ajax,否则我该怎么办?

以下代码未重定向。

[代码]

   [HttpPost]
    public ActionResult Save(RecipeViewModel postdata)
    {
        Recipe recipe = postdata.GetRecipe(_user.UserID);

        int recipeid = _service.AddRecipe(recipe, null, true);

        foreach (Ingredient ing in recipe.Ingredients)
        {
            ing.RecipeID = recipeid;
            _service.AddIngredient(ing, null, false);
        }

        if (!postdata.Comment.IsEmpty())
        {
            Comment comment = new Comment();
            comment.fldComment = postdata.Comment;
            comment.RecipeID = recipeid;
            comment.UserID = _user.UserID;
            comment.EnteredByName = _user.Names;
            comment.EnteredOn = DateTime.Now.ToString();
            _service.AddComment(comment, null, false);
        }

        _service.SubmitChanges();

        return RedirectToAction("View", "Recipe", new { id = recipeid });
    }

u<script type="text/javascript">
$("#Save").click(function () {
    var ingredients = $("#ingredients tr.ingredientdata").map(function (element, index) {
        return {
            ingredientName: $("td.ingredient", this).text(),
            units: $("td.units", this).text(),
            measure: $("td.measure", this).text()
        };
    }).toArray();

    var json = {
        RecipeTitle: $("#recipetitle").val(),
        CategoryID: $("#category").val(),
        PrepTime: $("#prepTime").val(),
        PrepTimePeriod: $("#lstPrepTime").val(),
        CookTime: $("#cookTime").val(),
        CookTimePeriod: $("#lstCookTime").val(),
        Rating: $("#rating").val(),
        Method: $("#method").val(),
        Comment: $("#comment").val(),
        AccessLevel: $("#accessLevel").val(),
        Ingredients: ingredients
    };

    $.ajax({
        url: "/Recipe/Save",
        type: "POST",
        dataType: 'json',
        data: JSON.stringify(json),
        contentType: "application/json; charset=utf-8",
        success: function () {
            //alert("DONE!!");
        }
    });
});

[/码] 马尔科姆

1 个答案:

答案 0 :(得分:0)

您需要发回Url并从客户端脚本重定向它。

       success: function (urlData) {
           window.location.href = urlData ;
           return false;
       } 

或者您可能会根据收到的回复显示错误消息。