小编Jac*_*son的帖子

ASP.NET/C#:DropDownList在服务器控件中没有触发的SelectedIndexChanged

我正在创建一个服务器控件,基本上绑定两个下拉列表,一个用于国家,一个用于州,并更新国家/地区的selectedindexchanged事件的状态下拉列表.但是,它没有回发.有什么想法吗?将它们包装在UpdatePanel中的加分点(有渲染问题;也许是因为我没有要引用的页面?)

这就是我所拥有的(一些额外的数据访问内容被剥离):

public class StateProv : WebControl
{
    public string SelectedCountry;
    public string SelectedState;

    private DropDownList ddlCountries = new DropDownList();
    private DropDownList ddlStates = new DropDownList();

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        IList<Country> countries = GetCountryList();
        IList<State> states = new List<State>();

        if (SelectedCountry != null && SelectedCountry != "")
        {
            states = GetStateList(GetCountryByShortName(SelectedCountry).CountryShortName);
        }
        else
        {
            states.Add(new State { CountryId = 0, Id = 0, StateLabelName = "No states available", StateLongName = "No states available", StateShortName = "" }); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net custom-server-controls selectedindexchanged drop-down-menu

11
推荐指数
1
解决办法
10万
查看次数

使用StringBuilder编写XML好吗?

感觉很脏.但也许它不是......使用StringBuilder编写XML是否可以?我的直觉说:"虽然这感觉不对,但它可能非常高效,因为它没有加载额外的库和开销,它没有做任何额外的方法调用XmlWriter调用." 它似乎只是一般的代码更少.XmlWriter有什么好处?

这是它的样子.我正在根据您来自的域构建OpenSearch XML文档.

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/xml";

    string domain = WebUtils.ReturnParsedSourceUrl(null); //returns something like www.sample.com
    string cachedChan = context.Cache[domain + "_opensearchdescription"] as String;

    if (cachedChan == null)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        sb.Append("<OpenSearchDescription xmlns=\"http://a9.com/-/spec/opensearch/1.1/\" xmlns:moz=\"http://www.mozilla.org/2006/browser/search/\">");
        sb.Append("    <ShortName>Search</ShortName>");
        sb.Append("    <Description>Use " + domain + " to search.</Description>");
        sb.Append("    <Contact>contact@sample.com</Contact>");
        sb.Append("    <Url type=\"text/html\" method=\"get\" template=\"http://" + domain + "/Search.aspx?q={searchTerms}\" />");
        sb.Append("    <moz:SearchForm>http://" + domain + "/Search.aspx</moz:SearchForm>");
        sb.Append("    <Image height=\"16\" width=\"16\" type=\"image/x-icon\">http://" …
Run Code Online (Sandbox Code Playgroud)

c# xml asp.net stringbuilder

11
推荐指数
1
解决办法
2万
查看次数

ASMX Web服务不序列化抽象基类

我有一个抽象的课.我们称之为Lifeform.它看起来像:

public abstract class Lifeform {
    public virtual int Legs { get; set; }
    public virtual int Arms { get; set; }
    public virtual bool Alive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

(虚拟属性是由于我正在使用nHibernate这一事实,如果它们不是虚拟属性,它会发出呜呜声.)

然后我有一个继承自Lifeform类的类; 我们称之为人类.它看起来像:

public class Human: Lifeform {
    public virtual bool Hat { get; set; }
    public virtual int Age { get; set; }
    public virtual string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一切都很可爱,我可以使用我的课程,当我使用它时,人类会获得腿部,手臂和活力属性.除此之外,也就是说,当我尝试使用Human类创建Web服务时.序列化对象为我提供了帽子,年龄和名字 - 但没有腿,武器或活动属性.

我见过一个建议使用的解决方法

[System.Xml.Serialization.XmlInclude(typeof(Human))]
Run Code Online (Sandbox Code Playgroud)

在基类(Lifeform)上,但这似乎是一个违反OO的可怕黑客.将基类上的链接放到继承它的类上?好恶.

有没有人遇到过这个具体问题?有什么想法吗?如果更深入的示例有助于描述我正在做的更多,我将提供更多代码.

c# web-services xml-serialization asmx

9
推荐指数
1
解决办法
4091
查看次数

应用程序域:不是有效的域。网站 URL 不是有效的 URL

我在http://qotr.net上有一个域,我正在尝试将其设置为应用程序,以便可以使用 OAuth。它在几周前建立的,我们刚刚在我们的应用程序上实现了 OAuth 钩子,当时 Facebook 开始给我们错误。

现在,当我进入设置页面并编辑任何内容时,我得到:

错误应用域:qotr.net 不是有效域。站点 URL 不是有效的 URL。

我有:qotr.net对于应用程序域和http://qotr.net站点 url。

http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fqotr.net

告诉我它无法解析 qotr.net。该站点显然已启动并可使用,并且 Google OAuth 有效。

我在网上找不到任何关于为什么它可能无法正确解析的信息;有任何想法吗?

dns facebook-oauth

5
推荐指数
1
解决办法
1万
查看次数

ASP中的HTML:直言不讳:它试图帮助太多

编辑:更新以获得更清晰.

我有一个无序的项目列表,我需要本地化.而不是包装每个列表项的文本 - 在数百个<li>的过程中,可能会杀了我 - 我决定将<ul>包装在文字中.这样,我可以在资源文件中抛出"text"属性进行本地化.

但是,asp.net认为我的代码中的每个换行符应该替换为<br />.有没有一个属性或方法可以解决这个问题,除了在文本中替换每个\n之外什么都没有?我试过Mode ="PassThrough",这似乎没有什么区别.

我暂时在<ul>的显示内部完成了所有内容:在我的CSS中没有,但它感觉很乱.我宁愿它根本不渲染<br />.

码:

<asp:Literal id="literal" runat="server">
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        ...
        <li>Item 50</li>
    </ul>
</asp:Literal>
Run Code Online (Sandbox Code Playgroud)

它给了我什么:

<ul>
<br />
    <li>Item 1</li>
    <br />
    <li>Item 2</li>
    <br />
    ...
    <br />
    <li>Item 50</li>
    <br />
</ul>
Run Code Online (Sandbox Code Playgroud)

asp.net

1
推荐指数
1
解决办法
3143
查看次数