2016-07-18 3 views
-1

ドロップダウンリストの選択キーを取得する際に問題があります。MVC無効DropDownlistValueが選択したキーを投稿していません

IDで登録してViewに送信すると、私の編集イベントが表示されます。 現時点では問題ありません。

public ActionResult Edit(int id) 
{ 
    var model = _mapper.Mapear(_dispositivoService.ConsultarPorId(id)); 
    model.ListaProfissionaisAtivos = new SelectList(_profissionalService.ListarAtivos(), "ProfissionalID", "Nome", model.ProfissionalID);  
    return View(model); 
} 

ここは私のDropDownListです。すべてOK。すべてのアイテムがあり、データベースに保存されているアイテムIDが選択されています。

@Html.DropDownList("ProfissionalID", Model.ListaProfissionaisAtivos, new { @class = "control-label col-md-2", @disabled = "disabled" }) 

しかし、ポストフォームデータの後に、すべてのprpertyがfiilledされ、DropDownListコントロールの主なものをexcet:ProfissionalID

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Edit(ProfissionalDispositivoViewModel model) 
{ 
    try 
    { 
     model.ListaProfissionaisAtivos = new SelectList(_profissionalService.ListarAtivos(), "ProfissionalID", "Nome", model.ProfissionalID); 
     if (ModelState.IsValid) 
     { 
      var dominio = _mapper.Mapear(model); 
      _dispositivoService.Atualizar(dominio); 
      return RedirectToAction("Index"); 
     } 
     return View(model); 
    } 
    catch (Exception ex) 
    { 
     ViewBag.Mensagem = ex.Message; 
     return View("Error"); 
    } 
} 

MVCが無効のコントロールの値を投稿していないようです。私のドロップダウンリストは無効になっています。しかし、私はエラーなしでchagesを保存するためにこのプロパティの値を保持する必要があります。これを行うにはどうしたらいいですか?

+1

model-view-controllerタグは、パターンに関する質問用です。 ASP.NET-MVCの実装には特定のタグがあります。 –

+1

プロパティの隠し入力を含めます(ドロップダウンリストを削除します - 不要なhtmlをレンダリングする点はありません)。 –

+1

これはhtmlがどのように動作し、asp.net mvcに固有ではないことも認識しています。無効化された入力は、その値をサーバーに戻すことはありません。 – Fran

答えて

0

こんにちは、無効にされた制御値は掲載されません。だからあなたができることは、ボタンのクリックでコントロールを有効にして、それが動作することです。または、ドロップダウンリストをバインドしている間に値をいくつかの非表示フィールドにバインドし、ドロップダウンリストを無効にします。フォームの投稿で、隠しフィールドから値を取得できます。

関連する問題