MVC 4의 녹아웃에서 드롭 다운 목록을 바인딩하려고합니다. 아래 코드를 참조하십시오.knockout dropdownlist databind가 ajax 호출에서 작동하지 않습니다.
액션
public JsonResult GetUserTypes()
{
using (QuestApplicationEntities db = new QuestApplicationEntities())
{
var usertypes = (from usertype in db.UserTypes
select new
{
usertype.Id,
usertype.Name
}).ToArray();
return Json(usertypes, JsonRequestBehavior.AllowGet);
}
}
Knockout.js
var Register =
{
Name: ko.observable("Ragesh"),
Email: ko.observable().extend({ email: true }),
Password: ko.observable(),
UserTypes: ko.observableArray([]),
UserType: ko.observable(),
SaveRegistration: function() {
//alert('saved');
$.ajax({
url: '/Home/RegisterUser',
type: 'post',
datatype: 'json',
data: ko.toJSON(this),
contentType: 'application/json',
success: function() {
alert('saved');
}
});
}
};
$.ajax({
url: '/Home/GetUserTypes',
type: 'post',
datatype: 'json',
data: ko.toJSON(this),
contentType: 'application/json',
success: function() {
ko.mapping.fromJS(data,Register.UserTypes);
}
});
ko.applyBindings(Register);
HTML을
<h4>Register</h4>
<fieldset>
<legend>New User Registration</legend>
<div class="editor-label">
Name
</div>
<div class="editor-field">
<input data-bind="value:Name" />
</div>
<div class="editor-label">
Email
</div>
<div class="editor-field">
<input data-bind="value:Email" />
</div>
<div class="editor-label">
User Type
</div>
<div class="editor-field">
<select data-bind="options: UserTypes, value: UserType, optionsCaption: 'Select User Type...'">
</select>
</div>
<p>
<button type="button" data-bind="click:SaveRegistration">Register</button>
</p>
</fieldset>
<script src="~/Scripts/knockout-2.2.1.js"></script>
<script src="~/Scripts/knockout.validation.js"></script>
<script src="~/Scripts/App/Register.js"></script>
그러나 GetUserTypes 액션 해고되지 않았습니다.
방화범에 다른 오류가 표시됩니다.
이 도와주세요.
'jquery'라이브러리를 페이지에 추가해야합니다. – Rustam
저는 _Scripts.Render ("~/bundles/jquery")를 _Layout.cshtml 페이지에서 사용합니다. 나는 그것이 효과가 없다고 생각한다. 지금 나는 내 웹 페이지에서 jQuery 파일을 직접 호출한다. –