我有一个Web应用程序,可以从两个不同的来源接收POSTed Xml,因此Xml的内容可能不同.
我希望我的控制器上的默认 *** 作能够读取Xml但是我很难看到我如何能够首先将Xml放入 *** 作中.
如果Xml是一致的,我可以使用Model Binder,但这不可能.
解决方法 您可以从请求流中读取它:[httpPost]public ActionResult Foo(){ using (var reader = new StreamReader(Request.inputStream)) { string xml = reader.ReadToEnd(); // process the XML ... }}
要清理此 *** 作,您可以为X@R_404_4617@编写自定义模型绑定器:
public class X@R_404_4617@ModeBinder : IModelBinder{ public object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { return X@[email protected](controllerContext.httpContext.Request.inputStream); }}
您将在Application_Start中注册:
ModelBinders.Binders.Add(typeof(X@R_404_4617@),new X@R_404_4617@ModeBinder());
最后:
[httpPost]public ActionResult Foo(X@R_404_4617@ doc){ // process the XML ...}
这显然更清洁.
总结以上是内存溢出为你收集整理的将text/xml读入ASP.MVC控制器全部内容,希望文章能够帮你解决将text/xml读入ASP.MVC控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)