使用RestSharp进行批量分配,POST请求 - MVC3

时间:2011-09-07 16:09:50

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

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


以下是该情景:
就像我提到的,我有一个带有标准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);
    }
}

任何人都可以给我任何关于如何实现这一目标的指示吗?

1 个答案:

答案 0 :(得分:1)

通过查看文档并快速来回查看John Sheenan后,我发现目前无法进行此操作。我最终向我们开发的API提出了单一请求。由于它在后台运行,因此它并不会真正影响桌面应用程序的用户体验,并且请求必须更小,更简洁。

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