2016-07-14 5 views
-1

MVCエンティティフレームワークを使用しています。コードを生成しました。フィールドがあります。このフィールドは値がtrueまたはfalseです。値を渡す方法EntityフレームワークMVC5を使用してデータベースから隠しフィールドを取得する

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Edit([Bind(Include="ClientId,ClientName,PrimaryContactName,EmailId,PrimaryContact,IsActive,ModifiedBy,ParentCompany")] TP_InternalClients tP_InternalClients) 
     { 
      if (ModelState.IsValid) 
      { 
       db.Entry(tP_InternalClients).State = EntityState.Modified; 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
      return View(tP_InternalClients); 
     } 

モデル::

public class InternalClients 
    { 
     public int ClientId { get; set; } 
     public string ClientName { get; set; } 
     public string PrimaryContactName { get; set; } 
     public string EmailID { get; set; } 
     public string PrimaryContact { get; set; } 
     public bool IsActive { get; set; } 
     public string ModifiedBy { get; set; } 
     public int ParentCompany { get; set; } 
    } 

ビュー:コードは

のようなコントローラに見えるコードを実行した後

<div class="col-md-10"> 
       <div class="checkbox"> 
        @Html.EditorFor(model => model.IsActive) 
        @Html.ValidationMessageFor(model => model.IsActive, "", new { @class = "text-danger" }) 
       </div> 
      </div> 

をiが欲しい真または偽の隠しフィールドを示すドロップダウンのisActive time send valueデフォルトはデータベースにのみtrueです。どのように私は隠され、デフォルト値を送信できますか?私は今、あなたを確認するだけで

<input type="hidden" name="IsActive" value="true" /> 

それとも、HTMLヘルパーメソッドに

@Html.HiddenFor(s=>s.IsActive) 

を使用することができて

<div class="checkbox"> 
    @Html.EditorFor(model => model.IsActive) 
    @Html.ValidationMessageFor(model => model.IsActive, "", new { @class = "text-danger" }) 
</div> 

を置き換える、私は自分のフォームでエラー

答えて

1

を取得していますやっデフォルト値をGETアクションで必要なものに設定します。

しかし、あなたはデフォルト値を保存したい場合は、あなたのHttpPostにアクション、フォームで隠しフィールドを維持する必要はありませんが、それを実行します(ユーザーがブラウザのdevのツールを使用して隠しフィールドの値を更新することができます)

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Edit([Bind(Include="ClientId,ClientName,PrimaryContactName,EmailId, 
         PrimaryContact,ModifiedBy,ParentCompany")] TP_InternalClients model) 
{ 
     if (ModelState.IsValid) 
     { 
      model.IsAcive = true ; 
      db.Entry(model).State = EntityState.Modified; 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(tP_InternalClients); 
} 

覚えておいて、the best way to prevent overposting is to use a view model with only those properties needed for the viewです。

+0

値は常にtrueどのようにデフォルト値を設定できるか – thenna

関連する問題