2

私はASP.net MVC 4(Webフォームから来ました)が初めてなので、特定のタイプの機能を実行する方法について少し混乱しています。

を使用してドロップダウンボックスを作成しました

<select>
@for(var item in ViewBag.Items)
{
    <option value="@item.ID">@item.name</option>
}
</select>

「追加」ボタンを作成するとします。

<input type="submit" value="Add" />

テーブルがあります。このテーブルを「cars」と呼び、「CarID」という列があります。

追加ボタンを押すと、ユーザーがドロップダウン ボックスで選択した車の ID を持つ新しい行が車のテーブルに追加されます。

どうすればこれを実現できますか?

4

2 に答える 2

3

formコントロールの周りに を設定し、 にいくつかの html 属性を設定する必要がありますselect

<form action="/Cars/Add" method="post">
   <select name="carId">
     @for(var item in ViewBag.Items)
     {
       <option value="@item.ID">@item.name</option>
     }
   </select>

   <input type="submit" value="Add" />
</form>

次に、という名前の新しいコントローラーを作成し、そのようなCarsアクションを追加しAddます。

public class CarsController : Controller
{
    public ActionResult Add(int carId)
    {
        // TODO : Validate the carId
        // TODO : Do the DB stuff to insert the car as you would in winforms
        return View("AddComplete"); // or whatever view
    }
}

上記の例は、アクションを呼び出す変数を送信するフォームを生成しcarIdますAdd。次に、アクション ハンドラーがそれを検証し、データベースに追加します。

HTML には状態がないことを覚えておく必要があります。つまり、ページがロードされるたびに、関連するすべてのものを渡すかロードする必要があります。

これらは、C# MVC 開発の基本的な概念の一部であるため、基本を読むのに時間をかける価値があるかもしれません:-

http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4 .

http://www.asp.net/mvc/tutorials

于 2013-09-11T15:52:05.353 に答える
0

MVC では、すべてのロジックをビューからコントローラーに移動することをお勧めします。

あなたが車のモデルを持っている場合:

public class car
{
    public string carname {get;set;}
    public int carID {get; set;}
}

SelectListコントローラーアクションメソッドで作成するよりも:

public ActionResult CreateNewRow()
{
    //**create selectList in controller
    var carlist = new List<SelectListItem>();
    var cars = from n in db.Cars
              select new SelectListItem
        {
             Text = n.carname,
             Value = n.CarID.ToString()
        };
    foreach (var item in cars)
    carlist.Add(item);

    ViewBag.cars = cars

    return View();
}

あなたの見解では、次のようなものが必要です。

@using(Html.BeginForm())
{
    @Html.DropDownListFor(model => model.carID, (SelectList)ViewBag.cars)

    <input type="submit" value="ok" />
}
于 2013-09-11T16:07:44.430 に答える