在ServiceStack中沿路径强制DTO属性

时间:2015-06-27 18:04:13

标签: routing servicestack

我有一些带有布尔字段IsLocked的DTO类。

/.../{IsLocked}
很容易建立路线 它会将此字段分配给查询值。

但我需要像

/.../lock
/.../unlock
这样的东西 那就是根据路线强行将IsLocked字段强制为真或假。

我可以不使用CustomRequestBinder而不解析Request.RawUrl吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这看起来像是两种不同的操作,所以我要看一下声明2次操作,例如:

[Route("/files/{FileName}/lock")]
public class LockFile { ... }

[Route("/files/{FileName}/unlock")]
public class UnlockFile { ... }

否则,您可以将路由声明为正常并返回比较字符串的计算布尔属性,例如:

[Route("/files/{FileName}/{LockString}")]
public class LockOrUnlockFile 
{
    public string FileName { get; set; }
    public string LockString { get; set; }
    public bool IsLocked { get { return LockString == "lock"; } }
}