我具有控制器列出如下:淨MVC視圖不渲染
//
// GET: /Customer/Details/5
public ActionResult Details(short id)
{
ActionResult actionResult = null;
if (HttpContext.User.IsInRole("Admin"))
{
// this is the logic that is getting executed
YeagerTechWcfService.Customer cust = db.GetCustomerID(Convert.ToInt16(id));
actionResult = View("Details", cust); }
else
{
HttpCookie cn = Request.Cookies["strCookieName"];
if (cn != null)
{
YeagerTechWcfService.Customer cust = db.GetCustomerID(Convert.ToInt16(id));
actionResult = View("Details", cust);
}
else
{
TempData["ErrCode"] = "CustView";
actionResult = RedirectToAction("Index", "Home");
}
}
return actionResult;
}
我有一個視圖(其中ActionLink的是)象下面這樣:
columns.Template(
@<text>
@Ajax.ActionLink("Detail", "Details", "Customer", new { id = item.CustomerID },
new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "detailCustomer" })
</text>
).Width(70);
渲染輸出現在是如下:
<a data-ajax="true" data-ajax-mode="replace" data-ajax-update="#detailCustomer" href="/Customer/Details/2">Detail</a>
如果我點擊從瀏覽器的源代碼視圖中,我到我的新視圖就好了。
但是,如果我嘗試點擊ActionLink,則視圖不會出現。我可以在調試過程中驗證,當我點擊該控制器代碼後,我正在通過詳細信息視圖。目前的觀點只是保持原位而不切換到新的視圖。
而且,我可以看到,如果我點擊ActionLink的,它執行完全相同的代碼(在調試期間),當我將其粘貼到地址欄:
的http://本地主機:4514 /客戶//2
當我點擊ActionLink的,即使相同的代碼被執行詳細信息,地址URL不會改變上述情況。和視圖不呈現。
我在做什麼錯?
達林,你是絕對正確的......我完全忘了我發送一個AJAX請求,這將使我保持在同一頁面上,而不是重定向。我可以將其更改爲您建議的HTML鏈接,或者在我的網格中執行AJAX回發以保持在同一頁面上。對於細節,我會做一個HTML鏈接,對於編輯,我會保持它的AJAX鏈接,並讓用戶執行內聯編輯。非常感謝。 – sagesky36