我喜歡爲這種大規模字符串構造首先建立一個數據結構。在這種情況下,一本字典的工作原理:
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頁面:
<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。
這是一個有趣的網址。 –
「我需要生成一個HTML鏈接」是什麼意思?你的意思是,你需要輸入字段併爲你的頁面生成一個''標籤? – McGarnagle
愚蠢的事情,但如果你是一個非技術人員,你可能會考慮改變你的用戶名爲「notaprogrammer」... – NotMe