我想用 knockout.js 和 MVC 4 创建一个单页网站。
进行一些更改后,用户将单击针对控制器Save
操作的保存按钮。
控制器端我想验证输入数据。
如果数据有效 - 我需要调用 WCF 方法。
如果数据无效 - 我将向客户端返回一些内容并告诉他们“名字太长”之类的内容。
制作这样的东西很简单:
SiteModel
用 DataAnnotations声明- 声明控制器动作
public JsonResult Save(SiteModel data)
- 如果模型有效,则创建 WCF DataContract 的新实例并调用 WCF 方法
代码:
public JsonResult Save(SiteModel data)
{
if (ModelState.IsValid)
{
var ui = WcfUserInfo{FirstName = data.FirstName};
if(wcfclient.wcfmethod(ui))
return Json("IsValid");
}
return Json("IsNotValid");
}
是否可以使用 DataAnnotations 创建 DataContract 并在Save
方法中使用此 DataContract,例如public JsonResult Save(WcfDataContract data)
?
我只是不想使用相同的数据创建和支持两个不同的类:一个 MVC 模型和一个 WCF DataContract。
谢谢你。
更新:
这 2 篇文章解决了我的问题。
通过 wcf 服务发送具有自定义属性的对象
如何使 WCF 客户端使用与 WCF 服务相同的数据类型