在web api .NET中引用View模型

时间:2013-07-30 07:44:39

标签: asp.net-web-api

我目前正在研究.NET中的web api。基本上我想知道它是否适用于web api接受域类,但随后引用api控制器中的视图模型。

我个人认为这不正确,因为域类只应该被接受,因为web api不应该对View模型类有任何了解吗?

代码示例如下:

我使用了精简控制器的方法,因此实现了一个执行方法,可以执行所有处理,在下面的情况下,它将添加到存储库。

 public HttpResponseMessage Put(Staff staffMember)
    {
        command.Execute(new StaffVM { Staff = staffMember }, ModelState);

        return Request.CreateResponse(HttpStatusCode.OK, staffMember.name);            
    }

这是一个好方法吗?

1 个答案:

答案 0 :(得分:-1)

当API Put方法收到put请求时,默认模型绑定器将尝试将传入请求属性映射到模型中的那些属性。如果重新使用MVC控制器模型符合映射请求,那么我认为这是一种可接受的方法。

这里唯一的考虑因素是现在 Api Put方法的要求和使用Staff的其他Controller方法是对齐的,但是如果对原始控制器的要求发生了变化那么如果模型发生更改,您可能会破坏API方法,映射可能会失败。

另一方面,如果将来API控制器的需求意味着无法再使用Staff模型,则可以恰当地替换API方法签名。