Asp.net mvc 如何将对象传递给已被击出js绑定的控制器
这是我的http post控制器:Asp.net mvc 如何将对象传递给已被击出js绑定的控制器,asp.net-mvc,knockout.js,Asp.net Mvc,Knockout.js,这是我的http post控制器: [HttpPost] public ActionResult Create(Employee p) { if (ModelState.IsValid) { Employee employee = EmployeeDataAccess.AddToDatabase(p); return RedirectToAction("Index", "Hr"); } return View(); } 这是我
[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")
}
我不知道如何将这些字段传递到一个对象中以创建(Employee p)。请详细解释。我对js和淘汰js是新手。另外,当最终用户还没有在LastName和FirstName中键入任何内容时,如何使用knockout禁用按钮,比如,它将发送一个警报,提示这些字段不能为空,并且一旦最终用户在字段中输入一些文本,这些字段将消失
我不知道如何将这些字段传递到一个对象中以创建(Employee p)
为了回答这个问题,让我们假设您的员工如下-
public class Employee
{
public string EmployeeId {get; set;}
public string FirstName {get; set;}
public string MiddleName {get; set;}
public string LastName {get; set;}
}
为了让控制器方法(一种HttpPost
方法)知道您正在传递一个JSON
格式的Employee
,您需要稍微修改方法的签名,如下所示-
public ActionResult Create([FromBody] Employee p)
这表明您需要的员工
是请求主体
的一部分,而不是查询字符串
另外,当最终用户还没有在LastName和FirstName中键入任何内容时,如何使用knockout禁用按钮,比如,它将发送一个警报,提示这些字段不能为空,并且一旦最终用户在字段中输入一些文本,这些字段将消失
您需要为这些字段设置required
字段-
lastName: ko.observable('').extend({required: true}),
firsName: ko.observable('').extend({required: true})
并在这些可见物周围放置一个按钮,以检查按钮是否应启用-
var canSubmit = ko.computed(function() {
return (self.lastName.isValid() && self.firstName.isValid());
});
<td><input type="button" value="Save To Database" data-bind="click: saveToDb, enable: canSubmit"/></td>
此外,要计算用户输入的firstName
和lastName
的值,您可以通过向绑定添加“valueUpdate”属性来告诉knockout执行此操作-
然后使用enable
绑定来控制是否应该启用-
var canSubmit = ko.computed(function() {
return (self.lastName.isValid() && self.firstName.isValid());
});
<td><input type="button" value="Save To Database" data-bind="click: saveToDb, enable: canSubmit"/></td>
我对js和淘汰js是新手
有一个非常好的击倒教程