[英]FileUpload gives 'System.NullReferenceException' on post to method
[英]Accessing session info gives System.NullReferenceException
我對ASP.net c#MVC有點陌生。 我正在嘗試創建一個登錄應用程序並創建一個會話。在我的應用程序中,我有一個登錄控制器。 在登錄控制器中,我將已登錄用戶的數據讀取到會話變量中,如以下代碼段所示。
[HttpPost]
public ActionResult Authorize(MVCFirst.Models.User userModel)
{
using (MVCNewEntities db = new MVCNewEntities())
{
var userDetails = db.Users.Where(x => x.UserName == userModel.UserName && x.UserPWD == userModel.UserPWD).FirstOrDefault();
if (userDetails == null)
{
userModel.LoginErrorMessage = "Incorrect useer name and password.";
return View("Index", userModel);
}
else
{
Session["userID"] = userDetails.UserID;
Session["userName"] = userDetails.UserName;
return RedirectToAction("Index","Home");
}
}
}
我的HomeController
Index
是一個ActionResult
。 在HomeController
的View
中,我嘗試將會話的Session值讀取為html標頭,如以下代碼段所示。
<body> <div> <h1>Dashboard</h1> <h3>Username : @Session["userName"].ToString()</h3> <h3>User ID : @Session["userID"].ToString()</h3> <a href="@Url.Action("LogOut","Login")">Logout</a> </div> </body>
當我編譯應用程序時,它不會給出任何錯誤。 它建立成功。 但是當我運行它時,它會引發異常。 異常中的消息說明以下內容。
消息“對象引用未設置為對象的實例。”
我在這里想念的是什么? 我在這里犯了什么錯誤? 進一步解釋。 當我嘗試登錄時沒有發生這種情況。 當我第一次運行該應用程序時,會發生這種情況。
您可以省略.ToString()
。
在MVC中,執行@someObj
對於空對象將不顯示任何內容,並將對其他任何對象隱式調用.ToString()
。
<div>
<h1>Dashboard</h1>
<h3>Username : @Session["userName"]</h3>
<h3>User ID : @Session["userID"]</h3>
</div>
只是嘗試使用這個( Object?.ToString()
)
<body>
<div>
<h1>Dashboard</h1>
<h3>Username : @Session["userName"]?.ToString()</h3>
<h3>User ID : @Session["userID"]?.ToString()</h3>
<a href="@Url.Action("LogOut","Login")">Logout</a>
</div>
</body>
在Global.Asax文件中設置以下
protected void Application_PostAuthorizeRequest()
{
HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.