【问题标题】:How to consume Webservice in MVC Model如何在 MVC 模型中使用 Webservice
【发布时间】:2013-08-30 13:49:48
【问题描述】:

我有一个非常简单的 MVC 模型,其中我有两个非常简单的模型类 Person 和 Company。

我必须使用 Web 服务来获取有关人员和公司的数据。

能否请您发布一些示例链接,其中 Web 服务用于 GET 或/和 POST。

这是我的控制器索引方法。

public ActionResult Index(string id)
{
Webservice webservice = new Webservice();
}

[HttpPost]
public ActionResult Index(string id)
{
Webservice webservice = new Webservice();
}

我不知道上面的代码是用Get还是Post写。

【问题讨论】:

    标签: c# asp.net-mvc wcf web-services


    【解决方案1】:

    我个人在模型中使用它。例如,我有一个 OData 服务,我在我的模型中调用它:

    public class Person
    {
        public string Name {get;set;}
        public Person(int Id)
        {
            var oDataService = new ODataService(new Uri("YourURL"));
            Name = oDataService.Persons.Where(x=>x.Id == Id).Select(x=>x.Name);
        }
    }
    

    然后在控制器中:

    public ActionResult Index(int Id)
    {
        return View(new Person(Id));
    }
    

    【讨论】:

    • 如果我们想在服务层下的一个单独的类中管理第三方Web服务怎么办?然后在一个使用Personservice 实例的公共类中执行CRUD?这听起来更好还是我在错误的树上吠叫? (服务单独管理一个类的主要原因是,根据客户的选择会有不同的第三方服务)
    【解决方案2】:

    模型是您的数据。控制器将管理它。这意味着您应该编写逻辑以在控制器中加载数据并将其转换为模型的对象。

    【讨论】:

    • 谢谢你的回复..你能给我发一下如何在控制器中加载并转换为模型对象的示例..
    • jyparask 在另一篇文章中为您提供了一个示例。它会起作用,但如果你想用单元测试来覆盖转换,你需要做一些不同的事情。此 ODataService 有一个接口,您需要将服务接口作为参数传递给 Person。在单元测试中,您将能够在 Controller 中通过伪造的服务 - 真正的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多