如何生成<a> tag from input fields</a>

时间:2013-10-24 20:02:02

标签: c# html asp.net asp.net-mvc

使用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,以便为用户预先填充信息: 名字, 姓, SupplierID =整数, Person的userlogin(应增加1.示例:person 1 = t00001.Person2 = t00002等), PayerCountry, 电子邮件, 量

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

谢谢!

1 个答案:

答案 0 :(得分: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编码,以确保它们不会与“&amp;”等保留的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。