2011-08-30 21 views
2

我是新手,刚开始学习asp.net mvc,因为我正在通过局部视图教程,并且创建了一个工作正常的小测试应用程序。为什么Asp.net局部视图不能返回?

我有一个页面,其中有一个客户订单,每个项目都有一个编辑按钮,用于添加或删除项目并按下它,我可以增加项目或从购物车中删除项目。而对于这样的行为,我使用

HTML.actionlink("+", "AddToCart", "Orders", new { orderid=tempcart.orderid }, 
new AjaxOptions()  
{ 
     OnBegin = "showplaces", 
     OnSuccess = "hideloader" 
}, null); 

所以,当我点击它进入AddToCart()动作按钮并更新数据库中的表,但它不更新的局部视图和loader.gif永远停留在该页面并且不调用hideloader()函数。

你能告诉我有什么问题吗?

+2

我强烈建议你不要使用内置ajax的东西。除了混淆你之外,它什么都不会做。使用JQuery:http://stackoverflow.com/questions/578443/asp-net-mvc-ajax-with-jquery和http://iridescence.no/post/Invoking-ASPNET-MVC-Actions-from-JavaScript-using -jQuery.aspx是相当不错的文章。 – tugberk

+1

您可以粘贴错误堆栈跟踪或提供有关错误的更多详细信息。 –

回答

3

1 - 首先用户Ajax.ActionLink因为要更新的局部视图

-2-酮的事情也放在购物车的DIV ID,以便它可以在动作完成后得到更新。

3-和我有这样的问题一次,所以我做了以下内容:

附加属性onFailure处在HT

Ajax.ActionLink("+", "AddToCart", "Orders", new { orderid=tempcart.orderid }, 
new AjaxOptions()  
{ 
     UpdateTargetId = "cart_divId", 
     OnBegin = "showplaces", 
     OnFailure = "ShowDOMExcep", 
     OnSuccess = "hideloader" 
}, null); 

,并使用这种方法来获得DOM异常:

function ShowDOMExcep(context) { 

    var html = context.get_data(); 
    var placeholder = context.get_updateTarget(); 
    $(placeholder).html(html); 
    return false; 
} 

希望这可以帮助...

+1

@S首先感谢所有指针。是的,我在重新生成部分视图时发现错误。谢谢 –

相关问题