2016-10-27 12 views
0

私はC#/ Razorを初めて使い、postメソッドを使ってフォームデータを渡す方法を知らない。投稿フォーム変数をASP.NET C#/ Razorに渡すにはどうすればよいですか?

をlogin.cshtmlで:ここで私が試したものだ_AppStart.cshtmlで

string username = Request.Form["username"]; 
string password = Request.Form["password"]; 

そして

string username = Request.Form.Get("username"); 
string password = Request.Form.Get("password"); 

を、私が試した:

AppState["username"] = HttpContext.Current.Request.Form["username"]; 
AppState["password"] = HttpContext.Current.Request.Form["password"]; 

すべては何も返しません。

はここlogin.cshtmlのフォーム要素です:

<form action="index.cshtml" method="post" data-ajax="false"> 
    <input type="text" name="username" placeholder="Username"> 
    <input type="password" name="password" placeholder="Password"> 
    <button type="submit">Login</button> 
</form> 
+0

まだMVCの方法は現在ありませんで見ることができます。私は、サーバー側のスクリプトで一般的なWebサイトで行うようなデータを渡そうとしています。 –

答えて

0

あなたは、あなたがAspコントローラが呼び出すためにどのアクションを知らせる必要はありMVCコントローラとビューの間でデータを渡す必要がある場合。

これを達成するには、剃刀でBeginFormsのようなものを使用して、必要な情報を指定します。

これは、次のようになります。あなたがコントローラーを必要としますが、アクションを持たせたい場合は、あなたが指定することができ、さらに、ここで与えられた名前に基づいてのActionResultに名前を付けることがわかります。このスニペット後

@Html.BeginForm("YourAction", "YourController", FormMethod.Post){ 
     @Html.TextBoxFor(employee => employee.FirstName); 
     @Html.TextBoxFor(employee => employee.LastName); 
     @Html.TextBoxFor(employee => employee.Age); 
     <input type="submit" value="Edit" /> 
    } 

または取得のみフォームの投稿時にのみ

possibileのexempleは

[HttpPost] 
    public ActionResult YourAction(Employee emp) 
    { 
     if (ModelState.IsValid) 
     { 
      // do smth. 
     } 

     return View("Name Of the view"); 
    } 

は注意あなたが必要とする次のコードのように編集することができコントローラ内でこれを定義し、Attribute HttpPostを使用すると、これがポストのみのActionResultであることがわかります。これは、ポストリクエストだけがこのメソッドを使用できることを意味します。さらに

このActionResultで利用可能な取得要求と送信要求の両方を使用したい場合は、単に属性を削除してから、デフォルトで取得要求と設定要求で使用できます。

あなたはこのフォーラム entry

関連する問題