0

こんにちは、mvc4 を使用してログイン ページを作成しています。ログイン資格情報はデータベースから取得されます。データベースでは、関連するテーブルにuseridpassword、およびpartneridの 3 つの列が含まれています。ユーザーが資格情報を入力して送信ボタンをクリックすると、ログインが成功すると、次のようなアドレスのページに移動します。

http://localhost:58361/Home?result1=true

これは私の送信ボタンのコードです:

<input type="submit" value="Login" class="login_button" onclick="return validateLoginPage()" />

ここで、validateLoginPage は、入力フィールドが空白になっていないかどうかをチェックする js 関数です。

私の要件は、送信ボタンをクリックすると、ユーザーがリダイレクトされるページのアドレスが次のように表示されることです。

http://localhost:58361/Home?result1=true?partnerid='somevalue'

partnerid 値はデータベースから取得され、ViewData に格納されます。

これを達成する方法は?前もって感謝します

編集

これは送信ボタンのアクション結果です

    public ActionResult Index(LoginModel model,string res)
    {
        LoginUser = model.Userid;
        LoginPassword = model.Password;
        verify(LoginUser, LoginPassword);
        res = result;
        if (res == "true")
        {
            return RedirectToAction("Index", "Home", new { result1 = result });
        }
        else
        {
            ViewData["alert"] = "The Login Credentials are Incorrect";
            return View();
        }
    }

verifyメソッドは、ログイン認証情報が正しいかどうかをデータベースで検証し、文字列値"result"を true または false として返します。

4

3 に答える 3

2

私があなたのことを正しく理解している場合、あなたはユーザーを

Home?result1=true?partnerid='somevalue'

私はこれを、null アクション (デフォルトで Index) を使用して Home Controller に移動し、result1=true を常に渡し、ViewData から partnerid を渡すと解釈します。

    @using(Html.BeginForm(null, "Home", FormMethod.Get, 
new { result1=true, partnerid='@(ViewData["somevalue"])' })) //for query string

警告: Karthik が慎重に指摘したように、このコードはテストされていません。ポイントを実証するのはもっとです:

于 2013-02-08T06:39:14.557 に答える
0

私があなたの質問を正しく理解し、ホームインデックスのコントローラーメソッドが次のようになっていると仮定します

public ActionResult Index(int partnerid)
{
    ViewBag.PartnerId = partnerid;
    return View();
}

ログイン方法でこれを行うことで問題ないはずです

public ActionResult Login()
{
    // Authentication stuff goes here
    return RedirectToAction("Index", "Home", new { partnerid = 1 });
}

ログインを処理するアクションのコードを追加したので、編集が簡単になります。データソースからpartneridを取得し、それを文字列に入れて''でラップしてから、変更するだけです。

return RedirectToAction("Index", "Home", new { result1 = result });

return RedirectToAction("Index", "Home", new { result1 = result, partnerid = partnerId });

次に、HomeControllerにIndexアクションを追加して、result1およびpartneridという名前の文字列パラメーターを取得する必要があります。すべてが機能するはずです。

于 2013-02-08T06:23:21.343 に答える
0

次のように、値を保持する非表示の入力を作成します。

<input type="hidden" value="XXX" name="refNameHere" />
于 2013-02-08T06:11:37.933 に答える