有和没有模型的淘汰js .net加载页面

时间:2012-11-11 22:59:09

标签: asp.net-mvc knockout.js

我正在尝试重复使用相同的表单来添加和编辑员工信息。我正在使用淘汰赛js,在我看来我制作了淘汰赛模型:

var koModel = new EmployeeModel(div);

如果我想填充服务器中的字段,我想做这样的事情:

var koModel = new EmployeeModel(unserializedModelFromController, div);

我想知道什么是区分请求是针对新员工还是编辑现有员工的最佳方法。

2 个答案:

答案 0 :(得分:0)

如果转动参数,可以编写一个构造函数。

var EmployeeModel = function(div, model) {
  if (model) {
    // Existing model has been passed, it's an edit request
  } else {
    // No model has been passed, it's a new request
  }
}

这可以称为:

new EmployeeModel(div);

new EmployeeModel(div, model);

答案 1 :(得分:0)

您可以向视图发送带有默认值的参数。 如果您正在编辑员工,您可以发送id的值,而您正在创建不发送。 接收存储或编辑请求的函数可以具有默认值。

public void SaveOrEditEmployee(int id=0, ...) //id=0 is a default value
{
    if(id==0)
    {
        //SaveEmployee
    }else
    {
        //EditEmployee
        Employee empl = (x => employee.id == id);
        ...
    }
}

或者您可以这样做,接收完整模型并评估数据库中是否已存在属性“id”