2014-11-05 99 views
0

可以說我有一個HomeController的兩個過載方法:微軟.NET get和POST HTTP

HttpGet 
public ViewResult a(){ 
    return View(); 
} 

HttpPost 
public ViewResult a(){ 
    return View("b"); 
} 

我有兩個觀點: 「a.cshtml」 和 「b.cshtml」

當它是一個get請求「view a」被加載,當它是一個post請求「view b」被加載時。然而,瀏覽器url仍然指向查看「a」。我想知道背後有什麼解釋?

+0

您的意思是瀏覽器的網址? – 2014-11-05 01:47:07

+0

是的瀏覽器 – redandblue 2014-11-05 01:53:15

回答

1

首先,你的代碼不會編譯。你不能有兩個相同的方法簽名。

但是,這裏的問題是,您將Controller操作與View與請求混淆。當瀏覽器請求進入時,in映射到控制器操作,而不是視圖。因此,您可以返回任何您想要的視圖,並且可以調用任何視圖,並且您的瀏覽器URL不會更改...無論呈現什麼視圖,它仍然是相同的控制器操作。