programing

ASP.NET MVC 3 (레이저) 에이잭스Action Link - 내가 뭘 잘못하고 있지?

lastmoon 2023. 2. 26. 10:28
반응형

ASP.NET MVC 3 (레이저) 에이잭스Action Link - 내가 뭘 잘못하고 있지?

AJAX 액션링크를 설정하려고 합니다.이 링크를 클릭하면 다음 작업이 수행됩니다.HttpGet를 반환하는 액션 메서드로 이행합니다.PartialViewResultHTML을 div에 밀어 넣습니다.

제 견해는 다음과 같습니다.

<div id="admin-options" class="admin"></div>
@Ajax.ActionLink("Show Admin Options", "ShowOptions", "Post", new { area = "Admin" }, new AjaxOptions { UpdateTargetId = "admin-options", HttpMethod = "GET" })

액션 방법은 다음과 같습니다.

public class PostController : Controller
{
   [HttpGet]
   [Authorize(Roles="Admin")]
   public PartialViewResult ShowOptions()
   {
      return PartialView();
   }
}

생성되는 HTML은 다음과 같습니다.

<a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#admin-options" href="/Admin/Post/ShowOptions">Show Admin Options</a>

나한테는 괜찮아 보이는데요.

단, AJAX 콜을 실행하는 대신 브라우저 URL을 통해 일반 HTTP GET을 실행하고 /Admin/Post/ShowOptions로 리다이렉트합니다.

분명히 난 뭔가를 놓치고 있어 - 하지만?

페이지에 눈에 띄지 않는 AJAX javascript 라이브러리가 포함되어 있는지 확인합니다.

<script src="<%=Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")%>" type="text/javascript"></script>

그리고 레이저 뷰 엔진을 사용하는 사람들은...

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

AjaxOptions에 삽입 모드 옵션을 포함할 수도 있습니다.제외 시 디폴트 동작도 있을 수 있지만, 이러한 경우에는 명시적으로 정의하는 것이 좋습니다.

언급URL : https://stackoverflow.com/questions/5725525/asp-net-mvc-3-razor-ajax-actionlink-what-am-i-doing-wrong

반응형