0

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

var koModel = new EmployeeModel(div);

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

var koModel = new EmployeeModel(unserializedModelFromController, div);

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

4

2 回答 2

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);
于 2012-11-11T23:22:21.947 回答
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”是否已存在于您的数据库中

于 2012-11-12T21:15:37.447 回答