2015-06-29 50 views
-1

我正在使用MVC4和Jquery。在MVC中打開.htm文件需要幫助

我在通過MVC中的操作方法打開.htm文件時遇到問題。

這裏是我的代碼:

<img src="~/Images/question_frame.png" style="margin-top:3px;height:18px;width:20px;" onclick="window.open('@Url.Action("Help", "Home", new { id = "NMCHelp"})', 'NMCHelp',toolbar=no, scrollbars=yes, resizable=yes, top=50, left=50,width=750, height=600');"/> 

我ActionMethod:

[HttpGet] 
[Authorize] 
public ActionResult Help(){ 
    var result = new FilePathResult("~/help/nmc/enu/Default.htm", "text/html");![enter image description here][1] 
    return result; 
} 

我現在面臨的問題,而試圖open.I我得到錯誤,如 '$' 是不確定的。

請讓我知道我可以打開.htm文件通過行動方法

+0

正確格式化 – Ionic

回答

0

你爲什麼要創建這個控制器項?這是一個普通的.htm文件,你可以瀏覽到直接.htm文件:

<img src="~/Images/question_frame.png" style="margin-top:3px;height:18px;width:20px;" onclick="window.open('/help/nmc/enu/Default.htm', 'toolbar=no, scrollbars=yes, resizable=yes, top=50, left=50, width=750, height=600');" /> 

或者你的選擇是將文件轉換成一個.cshtml文件,在這種情況下,你可以使用控制器只return View() ,請確保將.cshtml文件的名稱正確並將其放在正確的文件夾中。

+0

我想對.htm文件應用授權,以便用戶無法直接從外部打開,而無需進行身份驗證。我將其添加到操作方法中。 –

+0

然後,您需要將其創建爲.cshtml並使用適當的MVC方式返回視圖。 – JanR

+0

在MVC視圖中呈現.htm文件的任何幫助。 –

1

不要試圖將其作爲FilePathResult,歸還,因爲這裏不需要過分複雜。首先,將HTM文件放入項目文件夾中,如Files

現在,以下內容添加到你的web.config,以防止文件未經授權的訪問:

<location path="Files"> 
    <system.web> 
     <authorization> 
      <deny users="?" /> 
     </authorization> 
    </system.web> 
</location> 

然後,你可以通過做鏈接到它:

<img src="~/Images/question_frame.png" 
    style="margin-top:3px;height:18px;width:20px;" 
    onclick="window.open('/Files/Default.htm', 'NMCHelp',toolbar=no, scrollbars=yes, resizable=yes, top=50, left=50,width=750, height=600');"/> 

當你在它上面,你可能想要考慮刪除這些內聯樣式,並使用類名和內聯JavaScript。

+0

我試過這個,但它不工作或authenticating.Even當我試圖使用該網址打開htm文件的開放與出來要求認證 –