에 갈 수Knockoutjs 내가 간단한 로그인 컨트롤러가 RedirectToAction보기
@model SimpleLogin.Models.Employee
@{
ViewBag.Title = "Login";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Login</h2>
<span>User</span> <span data-bind="text: userName"></span> <br/>
<span>Password</span> <span data-bind="text: passWord"></span>
<div>
<table>
<tr>
<td>
<input type="text" name="txtUserName" placeholder="User Name" data-bind="value: userName" /></td>
</tr>
<tr>
<td>
<input type="password" name="txtPassword" placeholder="Password" data-bind="value: passWord"/></td>
</tr>
</table>
<button data-bind="click: logUser">Login</button>
</div>
@section Scripts
{
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/knockout")
@Scripts.Render("~/Knocks/LoginVm.js")
}
이 내 녹아웃 LoginVm입니다. 나는 응용 프로그램을 실행
$(function() {
ko.applyBindings(LoginVm);
});
var LoginVm = {
userName: ko.observable(''),
passWord: ko.observable(''),
logUser: function() {
var self = this;
$.ajax({
url: '/Company/Login',
type: 'post',
dataType: 'json',
data: ko.toJSON(self),
contentType: 'application/json',
success: function(data) {
//window.location.href = '/Company/Index'; //I tried putting an alert here but doesn't work. why?
}
});
}
};
JS, 나는에 브레이크 포인트를 넣어 "만약 (ModelState.IsValid)"컨트롤러. 괜찮 았어. 그것은 "return RedirectToAction ("Index ")를 실행하기는했지만 문제는 페이지가 로그인보기에 머물러 있으며 인덱스보기를로드하지 않은 것입니다. 왜? 나는 무엇을 잘못 했는가?
나는이를 넣어 다음 BundleConfig.cs
에서
bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
"~/Scripts/knockout-2.1.0.js",
"~/Scripts/knockout-2.1.0.debug.js"));
을 내가 JS에 익숙하지 않아요, 정말 나를 혼란. 내가 한 것에 2 가지 이상의 오류가 있음을 압니다.
이 내 수업
아약스 요청에public class Employee{
public int EmployeeId {get; set;}
public string UserName {get; set}
public string Password {get; set;}
}
당신은 아약스 전화를 걸었습니다 - 그들 모두는 같은 페이지에 머무르는 것입니다 (아약스 전화는 결코 리다이렉트하지 않습니다) –
와우! 그걸 몰랐어! 덕분에 – NoobProgger