をレンダリングしない:ネット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>
私は、ブラウザのソースビュー内からのリンクををクリック場合は、I私の新しいビューを取得するだけで大丈夫。
しかし、ActionLinkを試してみると、表示されません。私はデバッグ中に、私がそのコントローラコードを打った後、詳細ビューを踏んでいることを確認することができます。現在のビューは、新しいビューに切り替えることなくそのまま維持されます。
また、私はActionLinkのをクリックすると、それは私がアドレスバーに貼り付けるときのように(デバッグ中)同じ正確なコードを実行していることがわかります。
ます。http://ローカルホスト:4514 /顧客/詳細/ 2
アドレスURLは上記に変更されません、同じコードがを実行しているにもかかわらずActionLinkの、にIをクリックします。であり、ビューはレンダリングされていません。
私は間違っていますか?同じコードが実行されていても
ダーリンを、あなたは私が完全に私ことを忘れてしまった...絶対に正しいですリダイレクトしないで、同じページに私を保つAJAXリクエストを送信しています。あなたが提案したようなHTMLリンクに変更したり、グリッド内でAJAXポストバックを実行して同じページに留まることができます。詳細については、HTMLリンクを行い、編集のためにAJAXリンクを維持して、ユーザーにインライン編集を実行させます。本当にありがとう。 – sagesky36