により拘束されたコントローラにオブジェクトを渡すことができますが、私のHTTP POSTコントローラである:ここどのように私はここにノックアウトJS
[HttpPost]
public ActionResult Create(Employee p)
{
if (ModelState.IsValid)
{
Employee employee = EmployeeDataAccess.AddToDatabase(p);
return RedirectToAction("Index", "Hr");
}
return View();
}
は、私の見解では
@model TimeInTimeOut.Models.Employee
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Create</h2>
<table>
<tr>
<td><input type="text" placeholder="LastName" data-bind="value: lastName"/></td>
</tr>
<tr>
<td><input type="text" placeholder="FirstName" data-bind="value: firstName"/></td>
</tr>
<tr>
<td><input type="text" placeholder="MiddleName" data-bind="value: middleName"/></td>
</tr>
<tr>
<td><input type="button" value="Save To Database" data-bind="click: saveToDb"/></td>
</tr>
</table>
@section Scripts
{
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/knockout")
@Scripts.Render("~/Knocks/EmployeeVm.js")
}
で、ここで私のノックアウトEmployeeVmです.js:
$(function() {
ko.applyBindings(EmployeeVm);
});
var EmployeeVm = {
employeeId: ko.observable(0),
lastName: ko.observable(''),
firsName: ko.observable(''),
middleName: ko.observable(''),
saveToDb: function() {
var self = this;
$.ajax({
url: '/Employee/Create',
type: 'post',
dataType: 'json',
data: ko.toJSON(this),
contentType: 'application/json',
success: function(data) {
alert("Successful Employee Insert");
}
});
}
}
これらのフィールドをCreate(Employee p)の1つのオブジェクトに渡す方法はわかりません。詳細に説明してください。私はjsとノックアウトjsの新しいです。また、エンドユーザがLastNameとFirstNameに何も入力していないときにノックアウトを使用してボタンを無効にするにはどうすればよいですか?そのようなフィールドは空であってはいけません。フィールドにテキストを入力しますか?