簡體   English   中英

頁面在IIS7.5中返回異常,在VS2010調試中運行良好

[英]Page returns exception in IIS7.5, runs fine in VS2010 debug

向現有的MVC網頁添加一些代碼。 該網站的所有其他部分仍然可以正常工作。 在VS2010中運行Debug,代碼可以正常運行。 上傳到IIS 7.5后,它返回以下異常。 有任何想法嗎? 如果需要,可以提供其他代碼。

謝謝


Value cannot be null.
Parameter name: String

   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int32.Parse(String s)
   at McCarterMobile.Controllers.CartController.RemoveContribution(FormCollection form) in V:\Google Drive\Websites\Mobile Site\McCarterMobile\Controllers\CartController.cs:line 391
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

這是控制器代碼。

383            public ActionResult RemoveContribution(FormCollection form)
384        {
385            string sessionKey = "";
386
387            if (HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName] != null)
388            {
389                {
390                    sessionKey = FormsAuthentication.Decrypt(HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName].Value).UserData;
391                    repository.RemoveContribution(sessionKey, int.Parse(form["Ref_Num"]));
392                }
393                return RedirectToAction("Index");
394            }
395            else
396            {
397                return RedirectToAction("File Not Found", "Errors");
398            }
399        }

這是cshtml代碼

@using (Html.BeginForm("RemoveContribution", "Cart"))
{
<input type="submit" data-role="button" data-inline="true" data-iconpos="notext" data-icon="delete" data-iconpos="right" />
<input type=hidden name=Ref_Num value='@c.RefNum' />
}

MVC框架將處理類型轉換,如果您願意,它將為您處理:

public ActionResult RemoveContribution(int? Ref_Num = null)
{
    if (Ref_Num == null)
    {
        // report an error or whatever
    }
    else
    {
        // do something with Ref_Num
    }
}

MVC框架中有很多代碼來支持這些內容,因此您不必繼續處理類型轉換等問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM