MVC 보기지 않습한 후 업데이트 JQuery Call
-
21-12-2019 - |
문제
나는 건물 MVC5 웹 응용 프로그램입니다.레이아웃에서 템플릿에 있는 드롭다운 목록에 포함하는 목록의 사용자 이름을 사용합니다.이 드롭다운 레이아웃에서 템플릿에 액세스할 수 있습니다 내에 모든 전망에서 상속합니다.
사용자가 로그인할 때 사이트와 인증을 통과하는 것에 인덱스 메서드에서 컨트롤러입니다.이 방법은 널 ID 의 유형 int.사용자가 로그인할 때,id 전달되는 인덱스 메소드는 항상 null 입니다.내가 다음에 로그인한 사용자 ID 와 쿼리를 얻을 자신의 정보(아래 참조).
public ActionResult Index(int? id)
{
DashboardViewModel model = new DashboardViewModel();
if(id == null || id == 0)
{
User user = _userService.GetUserByID(Convert.ToInt32(User.Identity.GetUserId()));
model.SelectedUser = user;
}
else
{
model.SelectedUser = _userService.GetUserByID(id.Value);
}
return View(model);
}
나는 그들의 정보로 뷰 모델과 다음 보기는 다음을 씁니다 자신의 이메일 주소 UI.
@model MyApp.UI.ViewModels.DashboardViewModel
<h1>@Model.SelectedUser.email</h1>
면 사용자가 UI,그들이 선택할 수 있습 다른 사용자에서 드롭다운 목록입니다.그들이 그렇게 할 때,선택된 사용자 이메일 주소를 교체해야 그들의 것입니다.
이 프로세스는 다음과 같이 작동합니다.사용자가 선택하는 이름 드롭다운 목록에서,JQuery 함수가 호출
$(document).ready(function () {
$("#UserID").change(GetUser);
function GetUser() {
$.ajax({
type: "GET",
url: '/Dashboard/Index/',
data: { id: $(this).val() },
error: function () {
alert("An error occurred.");
},
success: function () {
alert("success");
}
});
}
});
이 기능을 전달합 ID 드롭다운 목록에서 다시 인덱스 메서드에서 컨트롤러입니다.인덱스 방법,이번에 실현 id 가 NULL 이 아니고,따라서 쿼리를 수행하여 얻을 선택한 사용자 정보에 기초하여,자신의 id(인덱스를 참조하십시오 방법이 있습니다.)
세부 사항은 다시 넣으로 뷰 모델로 전달됩니다.모델 통과를 볼 수 포함 선택한 사용자 정보 및를 작성해야 자신의 이메일 주소 UI
@model MyApp.UI.ViewModels.DashboardViewModel
<h1>@Model.SelectedUser.email</h1>
그러나 이것은 어디에 내 문제입니다.지할 수 있는 단계를 통해 내 코드는 모든 것을 보고 예상대로 작동 상관없이 사용자가 선택한 드롭다운 목록에서,그것은 결코 변하지 않 이메일 주소가 기록됩니다.
이것은 이상할 수 있기 때문에 선택한 사용자의 정보로 통과되는 시점,그러나,UI 업데이트하지 않 이메일 주소입니다.
긴 게시물에 대한 죄송하지만 주고 싶어 많은 세부 사항에 가능한 문제를 해결하기 위해 이 같은 작업을했습니다 이를 통해 일제는 성공합니다.
어떤 도움이 될 것이 정말 감사합니다.
감사합니다.
해결책
지금까지 내가 당신을 볼 수 있을 사용하지 않 h $.ajax
전화 결과는 어디든지.당신은 그냥 보고하고 그것을 이루어집니다.필요하신 데이터를 사용하여 결과에서,하지만 당신은 반 전체 View
지 PartialView
그것은 아마 더 나은 단지로 리디렉션에서 드롭다운 변화:
$("#UserID").change(function()
window.location.href = "/Dashboard/Index/" + $(this).val();
);
사용할 수도 있습니다 @Url.Action("Index", "Dashboard")
피 하드 코딩 url.