2016-07-21 11 views
0

私のプログラムをデバッグするとき、 "Welcome"というアクションが括弧内に入るユーザはすべてnullです。誰か助けてくれますか?私の送信ボタンがコントローラに何も送信していません

は、これはこれはあなたのビューにモデルを与えているが、あなたは "それを使用して" されていないコントローラ

namespace LessIsMore.Controllers 
{ 
public class WelcomeController : Controller 
{ 
    [HttpGet] 
    public ActionResult Welcome() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Welcome(User u) 
    {  
     //Some code here 
     return View(u); 
    } 
} 
} 
+3

あなたの入力に 'name'属性はありません。私はあなたがMVCサイトに行き、チュートリアルを通して基本を学び、特に強く型付けされた 'HtmlHelper'メソッドを使ってビューを生成する方法を学ぶことをお勧めします。 –

答えて

0

あるビュー

@using LessIsMore.Models 
@model User 

@{ 
ViewBag.Title = "Welcome"; 
} 
<h2>Welcome</h2> 

@using (Html.BeginForm("Welcome","Welcome",FormMethod.Post)) { 

<div class="form-group"> 
    <label for="txtUserName">UserName: </label> 
    <input type="text" id="txtUserName" class="form-control" placeholder="UserName" /> 
</div> 
<div class="form-group"> 
    <label for="txtPassWord">PassWord: </label> 
    <input type="password" id="txtPassWord" class="form-control" placeholder="PassWord" /> 
</div>  
    <button type="submit" id="btnsubmit" class="btn btn-default">Submit</button> 

} 

です。つまり、入力要素には「名前」属性がありません。

@Html.TextBoxFor(m => m.Username, new {@class = "form-control"}) 

またはあなたのモデルプロパティの名前と一致する、「name」属性を追加します。

は、私のような、HtmlHelperのメソッドを使用することをお勧めします。アンドレの答えに加えて

0

、あなたのUserクラスがUserNamePasswordと呼ばれる性質を持っている場合は、単にあなたのname属性を置くかのビューを提供すること。..

を意味..その後、あなたのビューでこれを実行する必要があります:

@using LessIsMore.Models 
@model User 

@{ 
ViewBag.Title = "Welcome"; 
} 
<h2>Welcome</h2> 

@using (Html.BeginForm("Welcome","Welcome",FormMethod.Post)) { 

<div class="form-group"> 
    <label for="txtUserName">UserName: </label> 
    <input type="text" id="txtUserName" name="UserName" class="form-control" placeholder="UserName" /> 
</div> 
<div class="form-group"> 
    <label for="txtPassWord">PassWord: </label> 
    <input type="password" id="txtPassWord" name="Password" class="form-control" placeholder="PassWord" /> 
</div>  
    <button type="submit" id="btnsubmit" class="btn btn-default">Submit</button> 

} 

送信すると正しい値が渡されるようになります。

これが役立つかどうか教えてください。

関連する問題