【问题标题】:c# how to request url parameters and change charc#如何请求url参数和更改char
【发布时间】:2012-07-15 14:04:14
【问题描述】:

得到一些url参数后,我想稍后在我的c#代码中使用它们,但格式略有不同。

“http://example/myexample.aspx?attendees=john.sam&speakers=fred.will.tony.amy.al”

我可以使用以下方法以现有格式将值作为字符串获取: c#代码

public string myattendees()
{
    string attendees;
    attendees = Request.QueryString["attendees"];
    return attendees;
}
public string myspeakers()
{
    string speakers;
    speakers = Request.QueryString["speakers"];
    return speakers;
}

myattendees 返回(以句点分隔,不带引号)

约翰·萨姆

和 myspeakers 返回(以句点分隔,不带引号)

fred.will.tony.amy.al

但我想对其进行转换,以便它返回类似这样的字符串,其中包含逗号分隔和单引号值。

'约翰','山姆'

'fred' , 'will' , 'tony' , 'amy' , 'al'

在 c# 中执行此操作的最佳方法是什么?使用 NameValueCollection?

*为清楚细节而编辑问题。 *edit - 修正拼写错误。

【问题讨论】:

  • 如果您知道它们总是以点分隔,只需 split 将它们放入一个数组中。

标签: c# url parameters request.querystring namevaluecollection


【解决方案1】:

此代码将为您提供一个通过点拆分获得的字符串数组:

string[] speakers;
if (Request.QueryString["speakers"] == null)
    speakers = new string[0];
else
    speakers = Request.QueryString["speakers"].Split('.');

【讨论】:

  • 小改进:更好地为 Request.QueryString["speakers"] 引入变量,这样您就不会计算两次。
  • 对不起,我对 C# 不是很熟悉。我正在尝试 ekolis 的答案,但它对我不起作用。我可能没有正确的所有语法? ekolis 的代码是否应该在 public string myspeakers() { string[] speaker; 的大括号内?如果...
  • 是的,它应该在 myspeakers() 方法的大括号中。你遇到了什么错误?您需要将 myspeakers() 的返回类型从 string 更改为 string[]...
  • 我收到编译错误,因为我没有使用正确的语法。您可以使用完整方法编辑答案吗?我不知道如何将返回...放在大括号内。我尝试了几种方法,但它对我不起作用。我正在尝试通读文档,但找不到。
  • return speakers; 给我一个错误“无法将类型'string[]'隐式转换为'string'
【解决方案2】:

试试这个:

public class MyClassGetQueryString
{

    private const string Attendees = "attendees";
    private const string Speakers = "speakers";

    public string MyAttendees()
    {
        return Request.QueryString[MyClassGetQueryString.Attendees] ?? string.Empty;
    }

    public string MySpeakers()
    {
        return Request.QueryString[MyClassGetQueryString.Speakers] ?? string.Empty;
    }

    public string[] MyAttendeesParts()
    {
        return this.MyAttendees().Split('.');
    } 

    public string[] MySpeakersParts()
    {
        return this.MySpeakers().Split('.');
    } 
}

【讨论】:

  • 我也在尝试这个,但是我得到一个错误方法必须有返回类型。
  • 我得到“方法必须有返回类型”
猜你喜欢
  • 2010-12-01
  • 2011-07-28
  • 2021-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
  • 1970-01-01
  • 2019-11-25
相关资源
最近更新 更多