我正在第一次開發ASP.NET MVC3網站。在我的開發機器上一切正常。ASP.NET MVC:測試服務器上的路由錯誤
我bin在我們的測試機器上部署了所有東西。經過一番缺少DLL發出的網站似乎在以下網址工作:
http://localhost/Test%20Website
但是當我點擊以下鏈接(這是由內嵌的JavaScript,因爲我使用的Infragistics網格創建這是不相關的問題):
<a href=\"/Patient/Edit/' + val + '\"><img src=\"../Resources/Edit.png\" align=\"left \"></a>
我得到HTTP錯誤404.0 - 未找到,這是合乎邏輯的,因爲物理路徑:C:\的Inetpub \ wwwroot的\耐心\編輯\ 537
雖然物理路徑應該是:C:\ inetpub \ wwwroot \ Test Website \ Views \ Patient \ Edit \ 537(atleast ......我想......不明白MVC路由是怎麼工作的)
這是通過使用ActionLink的HTML幫助和這樣的做工精細的方式進行的鏈接。 所以此工程: @ Html.ActionLink( 「關於」, 「關於」, 「主頁」) 而這個作品: @ Html.Partial( 「搜索」,新SearchModel())
所以,我的問題是,你如何解決這些問題?
P.S:在資源所有的圖像都不能工作。 答案
對不起後感嘆
UPDATE,apparantly需要注意的是這發生在一個javascript函數作爲字符串是很重要的。這是因爲我使用了Infragistic的JQuery網格中的FormatterFunction。好吧,這是我到目前爲止:
"function(val) {return '<a href=\"" + @Url.Content("~/Patient/Edit/" + val) + "\"><img src=\"../Resources/Edit.png\" align=\"left\"></a>'; }"
名稱'val'在當前上下文中不存在,這是邏輯的。但我不知道如何解決這個問題,因爲我對javascript/Razor /等的知識有限......請幫忙嗎?在這種情況下,Val就是它所綁定列的值。在這種情況下,患者的ID。
Ego4eg要求更多的代碼
它的Infragistics JQuery的網格。這個網格有一個FormatterFunction,它有一個字符串作爲參數。這個字符串需要是一個javascript函數。給你一個想法,這看起來像這樣:
@(Html.Infragistics()
.Grid(Model)
.ID("grid1")
.AutoGenerateColumns(false)
.Columns(column => {
//column.For(p => p.ID).FormatterFunction("function(val) {return '<a href=\"/Patient/Edit/' + val + '\"><img src=\"../Resources/Edit.png\" align=\"left\"></a>'; }").Width("25px").HeaderText(" ");
column.For(p => p.ID).FormatterFunction("function(val) {return '<a href=\"" + @Url.Action("Edit", "Patient", new { id = val }) + "\"><img src=\"../Resources/Edit.png\" align=\"left\"></a>'; }").Width("25px").HeaderText(" ");
column.For(p => p.ID).FormatterFunction("function(val) {return '<a href=\"/Home/CreateRemark/?patientID=' + val + '\"><img src=\"../Resources/add.png\" align=\"left\"></a>'; }").Width("25px").HeaderText(" ");
column.For(p => p.FullName).DataType("string").HeaderText("Naam").Width("250px");
column.For(p => p.Address).DataType("string").HeaderText("Adres").Width("400px");
column.For(p => p.BSN).DataType("string").HeaderText("BSN").Width("85px");
column.For(p => p.DateOfBirthAsString).DataType("string").HeaderText("Geboortedatum").Width("85px");
column.For(p => p.GeneralPractitionerName).DataType("string").HeaderText("Huisarts");
})
希望這會有所幫助。
的波浪難道不上的第一個例子工作,但第二個是精... – Steve 2013-04-23 10:25:51
真的,我編輯答案。 – Egor4eg 2013-04-23 10:29:53
首先,非常感謝您的回答。我現在在這幾個小時。第二,看起來很重要的是它是一個內聯的JavaScript函數,它是一個字符串,所以我更新了我的問題。希望你能幫助。請在底部查看更新的問題。 – 2013-04-23 12:38:12