小编Jas*_*ano的帖子

在ServiceStack中传达所需/可选DTO属性的最佳方法是什么?

我的ServiceStack w/Swagger实现有关于记录必需/可选属性的问题.实现使用我的服务的客户端的开发人员喜欢Swagger文档,但是他们不知道哪些属性是必需的而且是可选的 - 除了每次尝试获得有效请求时都获得400响应.

请看以下示例:

public class UserProfile
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public UserAddress Address { get; set; }
}

public class UserAddress
{
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string Zip { get; set; }
    public string Country { get; set; }
    public string PhoneNumber …
Run Code Online (Sandbox Code Playgroud)

servicestack swagger

7
推荐指数
1
解决办法
4642
查看次数

Swagger(ServiceStack)中未准确记录通用类型的响应对象

关于泛型类型响应对象的文档,我遇到了Swagger的ServiceStack实现的问题.强类型响应对象被正确记录和显示,但是一旦使用泛型类型对象作为响应,文档就不准确并且会产生误导.

请求DTO

[Route("/users/{UserId}", "GET", Summary = "Get a specific User Profile")]
public class GetUser : IReturn<ServiceResponse<UserProfile>>
{
    [ApiMember(Description = "User Id", ParameterType = "path", IsRequired = true)]
    public int UserId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

回复DTO

public class ServiceResponse<T> : IServiceResponse<T>
{
    public IList<string> Errors { get; set; }
    public bool Successful { get; set; }
    public string Message { get; set; }
    public string StackTrace { get; set; }
    public T Data { get; set; }

    public ServiceResponse()
    { …
Run Code Online (Sandbox Code Playgroud)

servicestack swagger swagger-ui

7
推荐指数
1
解决办法
3642
查看次数

Html.EnumDropDownList表示未将属性值显示为已选中

Html.EnumDropDownListForMVC 5.1中使用新的扩展方法时,我遇到的问题是,根据我传递给控制器​​操作的路由属性,下拉列表中的所选值没有更新.

视图

@model MemberReconWebDemo.Models.EnvironmentsModel
@{
    ViewBag.Title = "Environments";
}

<h2>Environments</h2>
<div class="row">
    <div class="col-md-12">
        @Html.EnumDropDownListFor(p => p.Environment)
        @Model.Environment.ToString()
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

控制器动作

[Route("environments/{environment?}")]
public ActionResult Environments(string environment)
{
    Domain.Environment env;
    Enum.TryParse(environment, true, out env);

    return View(new EnvironmentsModel{Environment = env});
}
Run Code Online (Sandbox Code Playgroud)

如果我导航到没有可选属性的路由,并且我Model.Environment在控制器操作中将属性设置为静态值,则该选定值显示没有问题.

如果我传入一个有效的路由属性值,将其分配给Model.Environment属性,则在呈现时下拉列表不会更新为属性值 - 即使我已确认该属性的值不是默认的枚举值.

asp.net asp.net-mvc razor asp.net-mvc-5 asp.net-mvc-5.1

2
推荐指数
1
解决办法
2571
查看次数