1

こんにちは皆さん、ビューからコントローラーにデータを送信する方法をお聞きしたいと思いますか? 以下に示すように、コントローラーとビューを使用して質問を説明したいと思います

これがログインアクションコントローラーです

[HttpPost]
public ActionResult Login(Panel model, string Username, string Password, string CaptchaValue, string InvisibleCaptchaValue)
{
    bool cv = CaptchaController.IsValidCaptchaValue(CaptchaValue.ToUpper());
    bool icv = InvisibleCaptchaValue == "";

    if (!cv || !icv)
    {
        ModelState.AddModelError(string.Empty, "The Captcha Code you entered is invalid.");
    }

    if (ModelState.IsValid)
    {
        if (model.Username == Username && model.Password == Password)
        {
            FormsAuthentication.SetAuthCookie(model.Username, false);
            return RedirectToAction("index", "Home");
        }
        else
        {
            ModelState.AddModelError("", "Check your name or password");
        }
    }
    return View();
}

したがって、ユーザーがログインすると、ホーム/インデックス ビューにリダイレクトされます。この時点で、すべて問題ありません。

ここに私のインデックスビューがあります:

[Authorize]
public ActionResult index()
{
    return View();
}

私の質問は、ユーザーのパスワードパラメーターを保持し、インデックスビューから別のコントローラーに送信して、コントローラーメソッドでこのパラメーターを使用するにはどうすればよいですか? たとえば、where 句の index_test コントローラー メソッドでパスワード パラメーターを使用したいのですが、まず、インデックスからこのデータを送信する必要があります。

public ActionResult index_test()
{
    return View(db.contents.Where(x => x.test_parameter== password).ToList());
}
4

2 に答える 2

3

アクション メソッドにパラメーターを追加する必要があります。

public ActionResult index_test(string password) { ...

あなたのビューでは、標準のリンクを介してアクションにデータを送信できます。

@Html.ActionLink("Click me", "index_test", "Controller", 
                                  new { password = "StringOrVariable")

または、フォーム投稿を行うことによって:

@using(Html.BeginForm("index_test")) { 
    <input type="hidden" name="password" value="mypassword" />
    add some fields
    <input type="submit" value="Send" />
}
于 2012-11-27T09:48:59.980 に答える
0

ビューで、フォームをコントローラーに戻します。たとえば、

<form action = "yourcontroller/youraction" method = "POST" enctype = "multiparrt/form-data">
于 2012-11-27T09:22:34.783 に答える