0

テーブルに固定の日付を挿入したい。これどうやってするの ?

    <div class="editor-label">
        Description :
    </div>
    <div class="editor-field">
        @Html.TextBoxFor(model => model.Description, new { @class = "textboxes" })
        @Html.ValidationMessageFor(model => model.Description)
    </div>

    <div class="editor-label">
        Date :
    </div>
    <div class="editor-field">
        @Html.TextBoxFor(model => model.Date, new { @class = "textboxes" }) /// I wanna be here a fixed date .
        @Html.ValidationMessageFor(model => model.Date)
    </div>

私のコントローラーコードは次のとおりです。

public ActionResult Index(tblOrder tblorder)
        {
            if (ModelState.IsValid)
            {
                db.tblOrders.AddObject(tblorder);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.fxBudjet = new SelectList(db.tblBudjets, "ID", "Budjet", tblorder.fxBudjet);
            ViewBag.fxServiceType = new SelectList(db.tblServiceTypes, "ID", "Service", tblorder.fxServiceType);
            ViewBag.fxStartTime = new SelectList(db.tblStartDates, "ID", "StartDate", tblorder.fxStartTime);
            return View(tblorder);
        }

コントローラーのコードを変更する必要がありますか?

4

1 に答える 1

2
@Html.DisplayTextFor(model => model.Date, new { @class = "textboxes" })

投稿で日付が必要な場合は、行うことができます

@Html.DisplayTextFor(model => model.Date, new { @class = "textboxes" })
@Html.HiddenFor(model => model.Date)

またはpostメソッドでTryUpdateModelを使用して日付フィールドを除外できます

あなたの更新から編集して、コントローラーでモデルの値を設定します。たとえば、年の値を事前に入力したいクラスの年があるとします

    public ActionResult Create()
    {
        return View(new Year() { Value = DateTime.Now.Year });
    }

もう一度投稿に必要な場合は、hiddenfor を使用するか、投稿で再生成することができます

このフィールドがポスト メソッドでのみ必要な場合は、そのフィールドを使用せずにビューモデルを作成し、ポスト メソッドにいくつかのマッピング ロジックを含めることをお勧めします。

編集 2: MVC 音楽ストアと同様に、get と post の 2 つのメソッドが必要です。作成用であると仮定します。

[HttpGet]
public ActionResult Create()
{
    ViewBag.fxBudjet = new SelectList(db.tblBudjets, "ID", "Budjet");
    ViewBag.fxServiceType = new SelectList(db.tblServiceTypes, "ID", "Service");
    ViewBag.fxStartTime = new SelectList(db.tblStartDates, "ID", "StartDate");
    return View(new tblOrder() { Date = DateTime.Now });
}

[HttpPost]
public ActionResult Create(tblOrder tblorder)
{
    if (ModelState.IsValid)
    {
        db.tblOrders.AddObject(tblorder);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    ViewBag.fxBudjet = new SelectList(db.tblBudjets, "ID", "Budjet", tblorder.fxBudjet);
    ViewBag.fxServiceType = new SelectList(db.tblServiceTypes, "ID", "Service", tblorder.fxServiceType);
    ViewBag.fxStartTime = new SelectList(db.tblStartDates, "ID", "StartDate", tblorder.fxStartTime);
    return View(tblorder);
}

次に、あなたの見解では

@model tblOrder

@Html.BeginForm()
{
    @Html.DisplayTextFor(model => model.Date, new { @class = "textboxes" })
    @Html.HiddenFor(model => model.Date)
    ...other form stuff
    <input type="submit" value="Delete" />
}

うまくいけば、これにより、コードを修正する方法についてのアイデアが得られるはずです

于 2012-04-22T11:05:12.657 に答える