期望整数返回值

时间:2015-11-02 20:33:00

标签: c# asp.net-mvc

我的网站上的购物车上有一个奇怪的问题。我收到了这个错误:

  

错误:https://blah.com/ShoppingCart/GetAvailability   错误消息:未定义的部分:“脚本”。   堆栈跟踪:在System.Web.WebPages.WebPageBase.RenderSection(字符串名称,需要布尔值)      在System.Web.WebPages.WebPageBase.RenderSection(String name)

问题是它无法找到“Scripts”部分的控制器方法返回一个整数,而不是一个页面。它如下:

[HttpPost]
public int GetAvailability(string sku)
{
    ECCDestinationConfig cfg = new ECCDestinationConfig();

    try
    {
        RfcDestinationManager.RegisterDestinationConfiguration(cfg);
        ... Calculate the stock quantity from SAP
        return runningTotal;
    }
    catch
    {
        // make sure the destination is unregistered
        RfcDestinationManager.UnregisterDestinationConfiguration(cfg);
        return 0;
    }
}

控制器方法通过ajax调用,如下所示:

$.ajax({
    url: "/ShoppingCart/GetAvailability",
    type: "POST",
    data: JSON.stringify({ 'sku': '@Model.Product.SKU' }),
    dataType: "json",
    traditional: true,
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        //Code to set a span to show a green check if over 0 and a red
        //exclamation if under.
    },
    error: function () {
        $('#@id').addClass("fg-crimson fa fa-exclamation");
    }
});

因此,该方法应该只返回一个整数,但我有用户报告问题,我看到错误日志中的“脚本”未定义错误消息。我无法在调试时重现这一点。我不明白为什么服务器在这里期待一个页面。奇怪的是,如果我重置网站的应用程序池,问题将暂时消失。我显然没有在某处捕获某些错误,但我无法想象那可能是什么。

1 个答案:

答案 0 :(得分:1)

这个错误的可能原因是,我说可能是因为我没有看到你的代码,你在视图中有@RenderSection(" scripts",required:false),带有必需的属性设置为true,@ RenderSection("脚本",必需:true)。如果它设置为true并且您没有提供javascript,则会收到错误。当你将它设置为false时,如果我不提供脚本,那么你告诉剃须刀引擎请忽略我。所以把它设置为假,你会没事的。