2015-09-07 73 views
-1
@{ 
ViewBag.Title = "Login"; 
} 

<h2>Login</h2> 

@Session["username"]="shahed"; 
@Session["password"]="123"; 
<div style="height:200px;width:500px;background-color:red;"> 

    <h3>@Session["username"].ToString()</h3> 

</div> 
@Html.ActionLink("Logout", "Logout", "Login") 

這段代碼在創建視圖時創建會話時會拋出異常。但我可以在控制器的操作中創建會話。是否有可能在視圖中創建會話在asp.net mvc?

型「System.NullReferenceException」的異常出現在App_Web_nkl0sa3y.dll但在用戶代碼中沒有處理

+0

異常是: - App_Web_nkl0sa3y.dll中發生了類型'System.NullReferenceException'的異常,但未在用戶代碼中處理 –

回答

2

你需要把它放在一個代碼塊

@{ Session["username"]="shahed"; } 
.... 
<h3>@Session["username"].ToString()</h3> 
+0

然後,您應該考慮接受將其關閉的答案。 –

1

雖然裏面在視圖中設置Session數據並不是一個好主意,您可以輕鬆地做到這一點。

<h2>Login</h2> 
@{ 
    // code block - whole statement evaluate 
    Session["username"]="shahed"; 
    Session["password"]="123"; 
} 
<div style="height:200px;width:500px;background-color:red;"> 
<h3>@Session["username"].ToString()</h3> 

從您的代碼不同的是分配給Session內部@{..}嵌段(C#代碼),其中您的版本使用@它計算Session["username"]如C#代碼,其餘(="shahed")作爲HTML標記完成 - 因此沒有分配製成(並且因爲Session["username"]仍然是null,所以下一行將拋出NRE在@Session["username"].ToString())。

相關問題