【问题标题】:ASP.net MVC 3 with web service带有 Web 服务的 ASP.net MVC 3
【发布时间】:2012-08-28 09:34:09
【问题描述】:

我是使用 ASP.net MVC 3.0 的 Web 服务的新人。现在我的团队中有另一个成员,他们开发 Web 服务,然后他们将 URL 传递给我 http://localhost:55274/iServices/Generics/Setting.svc/GetSetting/ ,然后我收到了 JSON 数据

{"ID":1,"MailAccount":"blahbla.com","MailPassword":"password","SMTP":"smtp.test.com","SMTPPort":500,"SSL":false}

现在我正在尝试让该 JSON 在我的 ASP.net MVC 3 类中使用,以提供邮件系统设置。我创建了两个类:

public class iceEmailObject
{
    public int ID { set; get; }
    public String SMTP { set; get; }
    public int SMTPPort { set; get; }
    public String MailAccount { set; get; }
    public String MailPassword { set; get; }
    public bool SSL { set; get; }
}

第二类是处理发送邮件:

public class EASEmail : ItemEntityDataContext
{
public bool SendMail(string ReplyTo, string SendTo, string Title, string Body, string From, string AttachmentPath, bool isHtml = false)
{
    try
    {
        SmtpMail oMail = new SmtpMail("blah blah blah");
        SmtpClient oSmtp = new EASendMail.SmtpClient();

        String fff = From;
        if (From == "") fff = ReplyTo;

        MailAddress ma = new EASendMail.MailAddress(fff, "");

        if (From == "")
        {
            oMail.ReplyTo = ReplyTo;
            oMail.Headers.Add("Reply-To", ReplyTo);
        }
        oMail.From = ma;

        oMail.To = SendTo;
        oMail.Subject = Title;
        oMail.Priority = MailPriority.High;

        if (!isHtml)
            oMail.TextBody = Body;
        else
            oMail.HtmlBody = Body;

            iceEmailObject mail = new iceEmailObject();
            mail.ID = blahblah;      //data from web service here
            mail.MailAccount = ""; //data from web service here
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }
}
}

我想获取 JSON 来初始化第一类的对象,例如 mail.ID = ...

谁能告诉我我该怎么做?谢谢。

【问题讨论】:

    标签: json asp.net-mvc-3 web-services


    【解决方案1】:

    试试这个

    JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
    
    iceEmailObject mail = js.Deserialize<iceEmailObject>(json);
    

    其中 json 是您的 JSON 字符串,而 mail 是结果对象

    【讨论】:

    • 感谢 Matt Tew,但我如何获得 JSON 字符串,正如您在我的问题开头看到的那样。我的同事刚刚给了我网址,然后当我浏览它时,我可以看到 JSON 字符串,但我不知道如何获取该字符串。
    • 啊,对。在这种情况下,我会考虑将 url 作为 Web 引用添加到您的项目中,然后您可以在代码中调用该方法。否则,使用 HttpWebRequest 对象
    • @socheata 如果您右键单击您的项目并添加 Web/服务引用然后输入 URL localhost:55274/iServices/Generics/Setting.svcvisual studio 将为您生成代码
    • 感谢 Daveo,我试过了,但在我输入 URL 时出现错误 SystemSetting/ was not recognized as a known document type.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 2012-07-28
    • 1970-01-01
    相关资源
    最近更新 更多