大家好,我最近開發了一個C# MVC架構的網站,
在測試過程中皆正常,功能也都正常運作,但是移到客戶正式機的時候,部分頁面會顯示無法連上這個網站:
客戶MIS回覆,他們會封鎖絕對路徑的網址(由網域開頭的網址),但所有頁面我只使用了Url.Action()來設定連結的部分,我查過Url.Action()產生的是/Home/Index,而不是http://www.example.com/Home/Index
後來再次確認架構,點到主選單時系統會導向底下的子單元(使用RedirectToAction),RedirectToAction所產生的網址是包含網域的部分,因此對方認為這部分有問題,所以後來就將連結的部分直接寫死,不再透過系統導址,但頁面還是壞的
目前我測試出來的結果是,這些壞掉的頁面,當我將編輯和刪除的功能關閉時,網頁就正常了,而這兩個功能的HTML是這樣寫:
@if (有編輯權限)
{
<a href="@(Url.Action("Edit", "Home", new { id = 'home', param1 = 1 }))">Edit</a>
}
@if (有刪除權限)
{
@using (Html.BeginForm("Delete", "Home", new { id = 'home', param1 = 1 }, FormMethod.Post))
{
@Html.AntiForgeryToken()
<button type="submit">Delete</button>
}
}
註: param1 = 1 代表這筆資料的序號
因為沒辦法直接連到客戶主機,在我的本機與外部測試機下都是正常顯示,不知道有沒有甚麼環境的因素讓無法連線的問題產生,再麻煩大家給予回饋
如果以上有不正確的說法或錯誤觀念也麻煩大家導正我,謝謝><