2012-03-05 2 views
0

Visual Studio 2010を使用しているMVCプロジェクト フォームは(現在JavaScriptを使用していますが、アクションは、テキストボックスに入力した値を格納する代わりに、両方のフィールドがゼロである空のモデルを取得しています。 Requestオブジェクトには、Formコレクション内の正しい名前と値のペアが含まれています。細かい他の方法で作業を行くMVCビューでは、フォームが投稿されたときにリクエストにフォーム値が含まれていますが、すべてのモデルフィールドが0です。

モデル値 - ので、私の[HTTPGET] CallDisplayHome()アクション、フォーム負荷に基づいて、テキストボックスの値が1

ていると誰もが、それはないだろう理由として手掛かりを持っている場合POSTを介して作業が戻ってくると、私はそれを感謝します。使用されて

モデル:

namespace TCSWeb.Models 
{ 
    public class CallDisplayModel 
    { 
     public int SelectedRowIndex; 
     public int SelectedLineID; 
    } 
} 

ビュー:

@model TCSWeb.Models.CallDisplayModel 

@{ 
Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<body> 
/* 
There a Jscript datatable here and a bunch of scripts for working with it in the header  I am skipping because I am hoping they are not relevant 
*/ 

    <div> 
    @using (Html.BeginForm("Testing", "CallDisplay", FormMethod.Post, new { name = "submitSelLine" })) 
    { 
     @Html.TextBoxFor(m => m.SelectedLineID)  
     <p> 
      <input type="submit" value="Log On" /> 
     </p>   
    }  
    </div>  
    <button onclick="SubmitSelCallRecord()">@LangRes.Strings.calldisplay_opencallrecord</button> 

私のコントローラのアクション:

[HttpGet] 
    public ActionResult CallDisplayHome() 
    { 
     TCSWeb.Models.CallDisplayModel temper = new CallDisplayModel(); 
     temper.SelectedLineID = 1; 
     temper.SelectedRowIndex = 1; 
     return View(temper); 
    } 

[HttpPost] 
public ActionResult Testing(TCSWeb.Models.CallDisplayModel cdmodel) 
{ 
    return RedirectToAction("CallDisplayHome"); //breaking here, cmodel has zero for selectedlineid 
} 

答えて

1

あなたのCallDisplayModを宣言する必要がありますプロパティとしての変数:

public int SelectedRowIndex { get; set; } 

[Required] 
public int SelectedLineID { get; set; } 

また、ユーザーが正しい情報を提供していることを確認するために少しの検証を追加することもできます。

次にあなたのポストの方法を変更し

[HttpPost] 
public ActionResult Testing(TCSWeb.Models.CallDisplayModel temper) 
{ 
    //check if valid 
    if(ModelState.IsValid) 
    { 
     //success! 
     return RedirectToAction("CallDisplayHome"); 
    } 
    //update error! redisplay form 
    return View("CallDisplayHome", temper); 

} 

そしてそうのようなあなたのビューにエラーを表示:

@Html.ValidationMessageFor(m => m.SelectedLineID) 
@Html.TextBoxFor(m => m.SelectedLineID) 

それがあるように私は、あなたのsubmitSelCallRecordボタンが何をしているのかわかりませんよ省略されたjavascriptを参照しています。

+0

ありがとうございます。完璧に働いた。 – user1250290

関連する問題