2016-10-25 4 views
-1

私はMVCを使用しています。インデックスビューでは、データ入力用に「EditorFor」フィールドと「DropDownFor」フィールドを配置しています。私は値を入力して、ビューからレコードを保存するようにしたいと思います。しかし、私は入力されたデータを取得する際に問題が発生しています。私はActionResultを作成してデータをバインドしようとしましたが、何も出ません。フィールドのID名を与えてパラメータとして渡してみましたが、何も渡されません。MVCビューからのフィールドデータの保存

これは私が私の見解で持っているものである -

<h3>Sensitive Areas</h3> 
@Html.HiddenFor(model => model.BurnSitesID, new { @id = "burnSitesID"}) 
<div class="form-group"> 
    @Html.LabelFor(model => model.SensitiveTypesID, "Sensitive Area", new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.DropDownList("SensitiveTypesID", string.Empty) 
     @Html.ValidationMessageFor(model => model.SensitiveTypesID, "", new { @class = "text-danger" }) 
    </div> 
</div> 

<div class="form-group"> 
    @Html.LabelFor(model => model.DistSensitiveArea, new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.EditorFor(model => model.DistSensitiveArea, new { @id = "distSensitiveArea" }) 

     @Html.ValidationMessageFor(model => model.DistSensitiveArea, "", new { @class = "text-danger" }) 

    </div> 

<input type="submit" id="CreateArea" value="Save"/> 

どのように入力された値を取り、コントローラに渡すのでしょうか?私はボタンを試しましたが、私のボタンの名前がビューとまったく同じでない場合は、何もしません。

+0

はフォーム内の入力要素ですか?フォームを提出したときに何が起こっていますか?フォーム送信を処理するアクションメソッドはどのように見えますか? – Shyju

+0

BeginFormヘルパーを使用するか、HTMLフォーム要素でフォームをラップする必要があります。 Ajaxを使用している場合、おそらくあなたのJSコードを表示する必要があります。 – Mark

+0

私は 'using(Html.BeginForm()) 'を追加しましたが、それでも値は持ちません。フォームを送信すると、フィールドが空であるように動作します。それは次のActionResultを使用しています - 'public ActionResult Save([Bind(Include =" SensitiveAreasID、DistSensitiveArea、BurnSitesID、SensitiveTypesID ")] BurnSiteSensitiveAreaIndexData burnSiteSensitiveAreaIndexData)' –

答えて

1

Html.BeginForm( "ActionName"、 "ControllerName"、FormMethod.Post)を使用してください。

ボタンは送信タイプである必要があります。

テキストボックスを使用している場合。

@Html.TextBoxFor("txtName", "", new { @class = "form-control", @maxlength = "50" }) 

<input type="submit" id="CreateArea" value="Save"/> 


[HttpPost] 
public ActionResult ActionName(FormCollection form) 
{ 
string Name=form["txtName"].ToString(); 
} 

ここで、名前はフィールド名の名前/ IDです。

ありがとうございました。

+0

ありがとう、Ronak。これはまさに私が探していたように機能しました。 –

関連する問題