小编bey*_*ode的帖子

ASP.net Web API中MVC的DefaultModelBinder的等价物是什么?

我想在ASP.Net Web API中创建一个自定义模型绑定器.有关如何从头开始执行此操作的大量资源,但我想利用现有功能.

我在codeplex中查看了源代码,可以在那里看到大量的模型绑定器,但大多数是密封的......即使这样,我也无法确定在哪种情况下使用哪一个.

这是我的api方法标题:

public async Task<HttpResponseMessage> Post(long appId, [FromBody]Field field)
Run Code Online (Sandbox Code Playgroud)

我想要做的是基本上在填充所有基本属性后拦截模型绑定器,然后根据我将在客户端设置的http请求标头设置一些额外的值.

正如我所说,我很乐意创建自定义模型绑定器和模型绑定器并将它们连接起来,我遇到问题的是试图重用现有的功能.

谢谢,皮特

c# rest model-binding asp.net-web-api

21
推荐指数
1
解决办法
6395
查看次数

如何使用Microsoft ASP.NET Web API OData中的Delta <T>和Code First\JsonMediaTypeFormatter

有什么问题?

我正在尝试在我的ASP.net web api应用程序中启用修补程序.我正在使用代码第一实体框架.

我有以下方法标题,我可以设置一个断点,它将命中:

[AcceptVerbs("PATCH")]
public async Task<HttpResponseMessage> Patch(long appId, long id, Delta<SimpleFormGroup> formGroup)
Run Code Online (Sandbox Code Playgroud)

但是,当我调用formGroup.Patch(实体)时,不会对我的实体进行任何更改.如果我将以下内容放入即时窗口:

formGroup.GetChangedPropertyNames()
Run Code Online (Sandbox Code Playgroud)

然后这个集合是空的,这似乎是错误的.

我试过了什么?

我一直在提到以下例子

http://techbrij.com/http-patch-request-asp-net-webapi http://www.strathweb.com/2013/01/easy-asp-net-web-api-resource-updates-with-delta /

Json MediaType Formatter似乎不知道如何正确构建Delta对象,但是在第二个链接中,filip似乎表明它应该在没有oDataMediaTypeFormatter的情况下工作.

我已经开始试图将我的模型序列化为EDMX表示,然后从那里提取CSDL以便我可以创建一个oDataMediaTypeFormatter,但我也遇到了障碍,加上它似乎有点矫枉过正.

如果有人能够对此有所了解,那将非常感激.如果需要更多信息,请与我们联系.

编辑:

这是SimpleFormGroup的类定义:

public class SimpleFormGroup
{
    public int LastUpdate;

    public string Identifier;

    public string Title;

    public int DisplayOrder;
}
Run Code Online (Sandbox Code Playgroud)

这是我发送的数据:

Content-Type: 'application/json'

{ "DisplayOrder" : "20 }
Run Code Online (Sandbox Code Playgroud)

谢谢,皮特

c# rest odata asp.net-web-api

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

如何以RESTful方式表示\维护主细节关系?

在我们的ASP.net Web API背后,我们有一个代码第一实体框架模型.考虑以下(简化)实体:

public class Form
{
    public long Id { get; set; }

    public string Identifier { get; set; }

    public virtual FormGroup Group { get; set; }
}

public class FormGroup
{
    public long Id { get; set; }

    public string Identifier { get; set; }

    public virtual ICollection<Form> Forms { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,FormGroups和Forms之间存在1-Many关系.我的问题是,如何设计一个RESTful API,允许我们更改表单所属的组?

到目前为止,我已经提出了两种可能的方法,每种方法都有利弊:

将关系表示为链接结构:

{
    "Id" : 1,
    "Identifier" : "Form1",
    "link" : {
        "rel": "http://myapi/res/formgroup",
        "href": "http://myapi/formgroups/1"
    }
}
Run Code Online (Sandbox Code Playgroud)

优点:

  • 包含表单组表示的有意义链接

缺点: …

c# rest entity-framework asp.net-web-api

6
推荐指数
1
解决办法
2149
查看次数

远程桌面拒绝 Windows Azure Web 角色的凭据

我在 VS 2012 上使用 .net 4.5 创建了一个云项目。它由两个 Web 角色、一个 API 和一个前端网站组成。

我已按照此处的说明进行操作:http://msdn.microsoft.com/en-gb/library/windowsazure/gg443832.aspx以设置远程桌面并部署该服务。

当我尝试连接时(我对凭据进行了两次和三次检查),我被告知“用于连接的凭据不起作用”。请输入新的凭据。

我的 Web 角色都可以运行,并且我可以在浏览器中访问它们。

我尝试在部署后等待一段时间以传播更改,但这没有什么区别。我唯一能想到的是,除了下载适当的位以便从 Visual Studio 进行部署之外,我还没有对证书进行任何操作。我找不到任何说明我需要这样做的文档。

我也尝试过向用户名添加各种域,但没有任何效果。

我是否遗漏了什么,或者目前天蓝色有可能存在错误吗?

编辑:现在尝试从 Visual Studio 中删除云项目,删除 azure 中的云服务并仅使用单个 Web 角色重新部署。仍然看到问题所在。

remote-desktop azure azure-web-roles

5
推荐指数
1
解决办法
4128
查看次数