【问题标题】:Mass assignment using RestSharp, POST request - MVC3使用 RestSharp、POST 请求进行批量分配 - MVC3
【发布时间】:2011-09-07 16:09:50
【问题描述】:

我一直在进行大量研究,试图找到将批量分配 POST 请求与我的 ASP.NET MVC3 应用程序进行通信的最佳方式,但没有取得多大成功。


这是场景:
就像我提到的那样,我有一个带有标准 REST 方法的 ASP.NET MVC3,我试图用它与桌面应用程序(另一个内部编写的应用程序)进行通信。作为原型开始,我们只是通过WebClient 使用暴力XML 文档上传,然后让MVC3 应用程序解析XML 文档。 为了保持这种行为,我们必须不断地构建多种方法,一种用于 XML 文档解析,另一种用于网站上的标准模型使用。如果可以的话,我想远离它。


经过我所有的研究,我遇到了RestSharp,我想知道是否有办法使用 RestSharp 处理批量分配 POST 请求。我希望能够执行以下操作:

在 MVC3 应用中...

public class RegistrationRequest {
    public string Email { get; set; }
    public string RequestedUserName { get; set; }

    public bool Register(string domain) {
        // Do registration stuff.
    }
}

public class AccountController : Controller {
    [Authorize,HttpPost]
    public ActionResult Register(IEnumerable<RegistrationModel> models) {
        return models.Any(model => !model.Register(this.Url.DnsSafeHost))
                   ? new HttpStatusCodeResult(400)
                   : new HttpStatusCodeResult(200);
    }
}

在桌面应用中...

public class RegistrationRequest {
    public string Email { get; set; }
    public string RequestedUserName { get; set; }
}

public class RegistrationService {
    public void CreateUsers() {
        List<RegistrationRequest> registrations = new List<RegistrationRequest>();
        // list of requested users built up by app

        var client = new RestClient(baseUrl);
        var request = new RestRequest("Account/Register", Method.POST);
        //request.AddAllMyObjects(registrations);
        var response = client.Execute(request);
    }
}

谁能告诉我如何实现这一目标?

【问题讨论】:

    标签: asp.net asp.net-mvc-3 rest mass-assignment restsharp


    【解决方案1】:

    在查看文档并与John Sheenan 快速来回切换后,我发现目前还不可能。我最终对我们开发的 API 提出了单一的请求。由于它在后台运行,它不会真正影响桌面应用程序的用户体验,而且请求必须更小更简洁。

    我发现这实际上使我们能够在每个单独的通过/失败情况下获得更好的结果并适当地处理这些情况。虽然这可能很好,但这个“一次一个”的请求最终被证明是更好的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多