-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 のユーザーログイン (1 ずつ増加する必要があります。例: person 1 = t00001、Person2 = t00002 など)。 、支払国、電子メール、金額

どういうわけか、私の管理職は、これは非技術者ができることだと考えています。どんな助けでも大歓迎です!

ありがとう!

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>

もう 1 つ注意してください。新規ユーザー用に自動インクリメント ID を作成したいようです。これは、データベースを使用して行うのが最も簡単です (データベースは、Web サーバーよりも並行性と持続性をより簡単に処理できます)。自動インクリメント フィールドを持つテーブルにレコードを挿入し、データベースで生成された値を ID として使用することをお勧めします。

于 2013-10-24T21:50:50.337 に答える