2017-03-21 27 views
0

我在.Net框架使用MVC模式。我有一個鏈接(的作品),看起來像這樣:MVC/JavaScript/Razor - 如何從按鈕打開新視圖

<li><a href="@Url.Action("HomePage", "Home")">Main Page</a></li> 

在上面的鏈接時,「主頁」是.cshtml網頁的名稱,不存在與相同的控制器的方法返回視圖的名稱。第二個參數「Home」是.cshtml頁面所在視圖下的子文件夾。

現在,在同一視圖的不同部分中,我點擊了一個按鈕,應該導航到相同的位置。它看起來像這樣:

<input type="button" class="navigationButtons" id="btnHome" value="Main Page" /> 

因爲我使用了一個navigationButtons的CSS樣式表,我更喜歡把代碼從在JavaScript按鈕去主頁。所以,我創建了一個jQuery變量並將其綁定到.on(「click」,onHome)事件。我有以下方法:

onHome = function() { 
    var url = '@Url.Action("HomePage", "Home")'; 
    window.location.href = url; 
} 

我也試過window.open(「HomePage」,「Home」);與我能找到的其他東西一起,無濟於事。 重要事項:我不希望在新窗口中打開視圖;它應該像鏈接一樣完全打開(在框架視圖中顯示視圖,就像屬於主應用程序頁面的主菜單下的嵌入視圖一樣)。

我已經瞭解到,如果我在html中使用按鈕類型而不是輸入類型,那麼我可以包含onClick鏈接,但我也遇到了麻煩。它顯示所有示例都包含完整的網址。但我試圖在框架中打開一個視圖。我沒有完整的網址。

有沒有人有任何想法如何使這種類型的導航從JavaScript?如果沒有,或者在html中有更好的方法,那麼我很渴望得到迴應。

+1

請澄清一下:「我不希望視圖在新窗口中打開,它應該打開與鏈接中的完全相同。你是什​​麼意思的窗口?你的意思是頁面或者像js alert窗口那樣?還有「FrameWork」這個詞。我無法得到你真正想要的東西的簡單圖片。 – Efe

回答

2

只需將該類添加到標記中即可。

<a href="@Url.Action("HomePage", "Home")" class="navigationButtons" autocomplete="off" data-loading-text="Loading Main Page...">Main Page</a> 
3

你可以在你的'navigationButtons'類中使用actionlink Html helper嗎?

@Html.ActionLink("Home", "Index", "Home", new { @class = "navigationButtons" })