【问题标题】:Do we have model binding in web service methods?我们在 Web 服务方法中有模型绑定吗?
【发布时间】:2011-08-13 08:22:05
【问题描述】:

我想在ASP.NET WebForms中使用jQuery ajax,我想直接调用一个web服务方法:

$.ajaxWrapper('/services.asmx/createprofile', {
firstName = firstName, 
lastName = lastName,  
city = city, 
state = state, 
address = address, 
postalCode = postalCode, 
tell = tell, 
cellPhone = cellPhone, 
isCompany = isCompany }, function(r){
   // success callback; return value is in r parameter.
});

注意:换行仅用于演示目的。

但是,由于字段的数量比这还要多,而且所有字段都是必需的,所以我不想创建一个 Web 服务方法来获取所有内容作为参数:

[WebMethod]
public bool CreateProfile (string firstName, 
string lastName, 
string city, 
string state, 
string address, 
string postalCode, 
string tell, 
string cellPhone, 
bool isCompany)
{

}

有没有像 ASP.NET MVC 模型绑定这样的方法来让框架发挥作用?换句话说,我可以这样写我的网络服务代码吗:

[WebMethod]
public bool CreateProfile (UserProfile profile)
{

}

【问题讨论】:

    标签: asp.net web-services jquery webforms


    【解决方案1】:

    我不确定,但我相信您可以在服务方法的类中定义一个 UserProfile 类(将其公开),(确保使用 getter 和 setter 并给它一个默认的空构造函数,就像您在MVC),它会解决问题。

    [WebMethod] 
    public bool CreateProfile (UserProfile profile) 
    {
        ....  
    } 
    
    public class UserProfile 
    {
        ....
    }
    

    【讨论】:

    • 感谢您的回答。但是,我不想在这里找到一个例子,因为我可以自己做这个实验。相反,我想要一种解释为什么它支持/不支持模型绑定。 :)
    • 这不是你的问题。但是 - 服务方法接收 SOAP 格式的 XML,然后将其反序列化,然后 asp.net 框架将其绑定到模型。
    猜你喜欢
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多