У меня есть контроллер, указанный ниже:
//
// 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://localhost:4514/Customer/Details/2
Когда я нажимаю на ActionLink, , даже если выполняется тот же код , , адрес URL не меняется на вышеуказанный. и представление не отображается.
Что я делаю не так?