2017-06-15 18 views
0

MVCに非常に新しいです。私のプロジェクトのための小さなツールを開発しています。ドロップダウンリストから選択した値を取得し、さらに使用するオブジェクトに割り当てる必要があります。私のコードはこのように見えます。ドロップダウンリストから値を取得してMVCのオブジェクトに割り当てる方法

VIEW:

@model SolutionMasterDataRepl.Models.ReplDataModel 

@{ 
    ViewBag.Title = "Solution Master"; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
    <script> 
     $(document).ready(function() { 
      $('.btn-toggle').click(function() { 
       $(this).find('.btn').toggleClass('active'); 
       if ($(this).find('.btn-primary').size() > 0) { 
        $(this).find('.btn').toggleClass('btn-primary'); 
       } 
       if ($(this).find('.btn-danger').size() > 0) { 
        $(this).find('.btn').toggleClass('btn-danger'); 
       } 
       if ($(this).find('.btn-success').size() > 0) { 
        $(this).find('.btn').toggleClass('btn-success'); 
       } 
       if ($(this).find('.btn-info').size() > 0) { 
        $(this).find('.btn').toggleClass('btn-info'); 
       } 
       $(this).find('.btn').toggleClass('btn-default'); 
      }); 
     }); 
    </script> 
    <style> 
     .form-horizontal{ 
      margin: 0 auto; 
      width: 50% 
     } 
    </style> 
</head> 
<body> 
    <div class="form-horizontal"> 
     <fieldset> 
      <legend>Data REPL</legend> 
      <div class="form-group"> 
       <label for="selectReplServer" class="col-lg-4">Select REPL Server</label> 
       <div class="col-lg-offset-4"> 
        <select class="form-control" id="replServer" style="width: 200px"> 
         <option>PTW01REPLAP001</option>            
        </select> 
        @Html.DropDownListFor(m => m.SelectedReplDatabase, Model.ReplDatabase, "Select REPL Server") 
       </div>     
      </div> 

MODEL:

public class ReplDataModel 
    { 
    public SelectList ReplDatabase { get; set; } 
    public string SelectedReplDatabase { get; set; } 
    } 

CONTROLLER:

public class HomeController : Controller 
    { 
    string replDatabase = string.Empty; 
    // GET: Home 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult GetReplDatabase(ReplDataModel model) 
    { 
     replDatabase = model.SelectedReplDatabase; 
     return View(model); 
    } 
    } 

は、null参照のEXCを取得していますここでの選択: @Html.DropDownListFor(m => m.SelectedReplDatabase, Model.ReplDatabase, "Select REPL Server") エラーを整理してdropdownlistから値を割り当てるより良い方法を提案する人々が助けてくれますか?

+0

コントローラアクションでModelおよびModel.ReplDatabaseの値を設定していません。 –

+0

これを確認してください:https://stackoverflow.com/questions/44429163/how-to-get-data-to-dropdownlist-from-database-in-html-view/44430272#44430272 –

+0

'Model.ReplDatabase'が' null'です。 'ReplDataModel'の新しいインスタンスを初期化し、' ReplDatabase'プロパティを設定してビューに戻す必要があります(また、POSTメソッドで再作成する必要があります)。 POSTメソッドでビューを返すとすぐに 'replDatabase'の値が失われます。 –

答えて

0
public class HomeController : Controller 
    { 
    string replDatabase = string.Empty; 
    // GET: Home 
    public ActionResult Index() 
    { 
     ReplDataModel Model = new ReplDataModel(); 
     return View(Model); 
    } 

    [HttpPost] 
    public ActionResult GetReplDatabase(ReplDataModel model) 
    { 
     replDatabase = model.SelectedReplDatabase; 
     return View(model); 
    } 
    } 

GetメソッドでModel値を渡したり、postメソッドでreplDatabaseもチェックしたりしていません。あなたは何も割り当てていません。

+0

ありがとうございました...それは働いています... – Nathan

+0

記者はいません:) –

関連する問題