0

私たちは今、一日のように検索してきましたが、ビューからコントローラーにデータを渡すことができません。実際、ユーザーがIndex()ビューのドロップダウンリストから時間ブロックのStartTimeとして時間を選択するようにします。現時点では、次のコードを使用する必要があります。

コントローラーでのアクション

public ActionResult genBlocks(string StartTime, FormCollection collection)
{
    int blocksPerDay = 4;
    int strH, strM;
    List<Block> blocks = new List<Block>();
    for (int i = 0; i < blocksPerDay; i++)
    {
       if (i != 0)
       {
          strH = blocks[i-1].EndTime.Hour;
          strM = blocks[i-1].EndTime.Minute;
       }
       else
       {
          strH = Convert.ToInt32(collection["StartTime"]);
          strM = 0;
        }
        Block block = new Block
        {
            FieldDayId = 1,
            Available = true,
            StartTime = DateTime.Today + new TimeSpan(strH, strM, 0),
            EndTime = DateTime.Today + new TimeSpan(strH, strM + (db.Sports.Find(1).Duration*(i+1)), 0),
        };
        blocks.Add(block);
        db.Blocks.Add(block);
        db.SaveChanges();
    }
    return RedirectToAction("Index");
}

そして私たちの見解では、私はフォームを実装しました

@using (Html.BeginForm("genBlocks"))
{
    <input type="text"name="StartTime" />
    @Html.DropDownList("StartTime", String.Empty)

        <div id="genBlocks" class="button">
            <input type="submit" />
        </div>
}

だから私たちはdorpdownlistとテキストボックスでそれを試しましたが、どれもうまくいきません...

4

3 に答える 3

0

次のコードを使用してみてください

コントローラ-HttpPost属性をそこに配置するようにしてください

 [HttpPost]
 public ActionResult genBlocks(string StartTime,FormCollection collection)
 {
   return View();
 }

あなたの見解-beginformメソッドに実際のアクションとコントローラー名を入れてください

@using (Html.BeginForm("genBlocks","ControllerName"))
{
    <input type="text" name="StartTime" />

    <div id="genBlocks" class="button">
        <input type="submit" />
    </div>
}
于 2012-05-21T11:41:28.793 に答える
0
@using (Html.BeginForm("genBlocks", "Block"))
{
@Html.DropDownList("StartTime", String.Empty)
<input type="submit" class="button" value="Generate blocks" />
}

インデックスの解決策でした:)

于 2012-05-21T19:47:51.720 に答える
0

ドロップダウンリストは、実際には単一のスカラー値(現在選択されている値)のみを返します。これは、int、stringなど何でもかまいません。モデルの一部である場合は、Html.DropDownListFor(m => m.Hour、[INSERT POSSIBLE SELECTITEMLIST ARRAY HERE])を使用できます。

もう1つのオプションは、その値のみを取得する必要がある場合は、アクションメソッドでint、stringなどを受け入れることです。

問題は過労になっているようです。

于 2012-05-22T00:53:28.437 に答える