4

这个 DTO

[Route("/{Module}/{Name}")]
public class ViewEntityList {
    public string Module { get; set; }
    public string Name { get; set; }
}

导致我的应用程序在启动时出错

类型“ViewEntityList”上的 RestPath“/{Module}/{Name}”无效

我可以将路线更改为以文字(例如)开头,/Entity/{Module}/{Name}但这不是我想要的;此外,我的 URL 开始看起来过长且不像 REST。

是否可以使用变量开始路线?如果没有,是否有另一种方法可以将任何包含两个部分的路线映射到特定的 DTO?

4

1 回答 1

0

我总是做以下事情:

        //Configure User Defined REST Paths
        Routes
            .Add<DTO1>("/service/function/{argument}")
            .Add<DTO2>("/service/commonsegment/{Function*}")

DT1 的映射是“基本”映射,一个 URL 对应一个 DTO。

在 DTO2 中,您将需要一个名为“Function”的键,它将为您提供 URL 的第一个“非常见”段的名称,如果可能,URL 中预设的任何其他段将映射到您的 DTO2(如果有匹配的属性)。通过这种方式,您可以在不更改 Web 服务器本身的情况下接受新功能/参数,而只需更改支持实现(可以/应该位于外部 dll 上)。

我希望这有帮助。

于 2012-12-04T12:14:28.910 回答