-4

使用 ASP.Net(在 C# 中),我需要生成一个包含人名、地址等的标签。我对 ASP.NET(或 .NET 语言)几乎没有任何经验,我得到了这个任务。有人可以指导我正确的路径吗?

链接应如下所示:

https://example.com/PRR/Info/Login.aspx?SupplierId=36&RegisteredUserLogin=T000001&Mode=RegisteredLoginless&RegisteredModeFunction=AutoShowTotals&RegisteredModeFunction=AutoShowTotals&PayerCountry=FI&ForcePayerEmail=al@lea.al.banthien.net&ExternalOrderId=1000123&ServiceId=286&Amount286=5000.00&PayerInfo286=T000001|10000123 |type1|m&SuccessReturnURL=http://success.html&FailureReturnURL=http://failure.html&SuccessCallbackURL=http://youpay.com/p247/success.html&FailureCallbackURL=http://yourfailure.html

需要将以下组件/字段发送到 API 以便为用户预填充信息:FirstName、LastName、SupplierID = integer、Person 的 userlogin(应递增 1。示例:person 1 = t00001。Person2 = t00002 等) , PayerCountry, 电子邮件, 金额

出于某种原因,我的管理层认为这是非技术人员可以做的事情!任何帮助,将不胜感激!

谢谢!

4

1 回答 1

1

对于这种海量的字符串构造,我喜欢先建立一个数据结构。在这种情况下,字典起作用:

string CreateUrl(string firstName, string lastName, int supplierID, int login, string payerCountry, string email, decimal amount)
{
    int personId = 0;
    var query = new Dictionary<string, string>
    {
        { "SupplierId",              "36" },
        { "RegisteredUserLogin",     "T" + login.ToString().PadLeft(5, '0') },
        { "Mode",                    "RegisteredLoginLess" },
        { "RegisteredModeFunction",  "AutoShowTotals" },
        { "PayerCountry",            payerCountry },
        { "ForcePayerEmail",         email },

        // etc ...

        { "FailureCallbackURL", "http://yourfailure.html" },
    };

    string baseUrl = "https://example.com/PRR/Info/Login.aspx?";

    // construct the query string: 
    // join the key-value pairs with "=" and concatenate them with "&"
    // URL-encode the values
    string qstring = string.Join("&",
        query.Select(kvp => 
            string.Format("{0}={1}", kvp.Key, HttpServerUtility.UrlEncode(kvp.Value.ToString()))
        )
    );

    return baseUrl + qstring
}

(请注意,查询字符串值必须经过 URL 编码,以确保它们不会与保留的 URL 字符(如“&”)冲突。)

现在您可以在 ASPX 页面中构建 URL:

<script runat="server">
    public string URL
    {
        get
        {
            // TODO insert the user's fields here
            return CreateUrl(FirstName, LastName, ...);
        }
    }
</script>

<a href='<%= URL %>'>Login</a>

另一个注意事项——听起来您想为新用户构建一个自动递增的 ID。使用数据库最容易做到这一点(数据库比 Web 服务器更容易处理并发和持久性)。我建议将记录插入到具有自动增量字段的表中,并使用数据库生成的值作为 ID。

于 2013-10-24T21:50:50.337 回答