2011-09-07 42 views
2

我一直在進行大量的研究,試圖找到與我的ASP.NET MVC3應用程序進行批量分配POST請求的最佳方式,但沒有取得太大的成功。使用RestSharp,POST請求進行批量分配 - MVC3


這裏的情景:
就像我提到的,我有一個ASP.NET MVC3標準的REST方法,與我試圖用一個桌面應用程序(內部編寫的另一個應用程序)進行通信。作爲原型開始,我們只使用了通過WebClient上傳的強力XML文檔上傳,然後通過XML文檔解析MVC3應用程序。 爲了保持這種行爲,我們必須不斷構建多個方法,一個用於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

在翻看文檔並快速瀏覽John Sheenan之後,我發現目前這是不可能的。我最終向我們開發的API提出了單獨的請求。由於此操作在後臺運行,因此它不會真正影響桌面應用程序的用戶體驗,因此無論如何這些請求都必須更小且更簡潔。

我發現這實際上使我們能夠在每個單獨的合格/不合格情況下獲得更好的結果,並適當地處理這些結果。雖然它可能不錯,但這個「一次一個」的請求實際上最終證明是更好的。