0

テキストを入力して後で送信するためにHtml.TextBoxForを使用しています。私が取得したいのは、送信時に、例外/エラーの場合に、ユーザーを以前に入力した値でフォームビューに戻すことです。

私のPOSTアクション:

[HttpPost]
public ActionResults Add(Model model)
{
    try
    {
        //on succeed
        _repository.Add(model);
        return RedirectToAction("ThankYou", "Home");
    }
    catch(Exception ex)
    {
        ModelState.AddModelError('foo', ex.Message);
    }

    return View(model);
}

コードを表示:

<div class="origin">
                <div class="float-left margin-right">
                    @Html.LabelFor(m => m.From, "From:", new { @class = "block-display" })
                    @Html.TextBoxFor(m => m.From, new
                        {
                            type = "text",
                            @class = "airport-auto-complete",
                            auto_complete = "",
                            placeholder = "enter place or airport",
                            ng_model = "From"
                        })
                </div>
                <div class="float-left">
                    @Html.LabelFor(m => m.DepartAt, "Depart:", new { @class = "block-display" })
                    @Html.TextBoxFor(m => m.DepartAt, new
                        {
                            type = "text",
                            @class = "begin-trip-date date-input",
                            ng_model = "DepartAt"
                        })
                    <input type="button" class="more-options-btn" value="More.." />
                    <input type="button" class="transport-btn" />
                </div>
                <br style="clear: left;" />
            </div>
            <div class="more-details">
                <div>
                    <label>
                        <input type="checkbox" id="allow-via" />
                        Allow nearby</label>
                    <br />
                </div>
                <div>
                    <label for="via" class="block-display">Via:</label><input type="text" id="via" auto-complete />
                </div>
                <div>
                    <div class="float-left left">
                        <label for="flight-num" class="block-display">Flight No.:</label><input type="text" id="flight-num" />
                    </div>
                    <div class="float-left">
                        <label for="stops" class="block-display">Stops:</label><input type="text" id="stops" />
                    </div>
                </div>
            </div>
            <div class="destination">
                <div class="float-left margin-right">
                    @Html.LabelFor(m => m.To, "To:", new { @class = "block-display" })
                    @Html.TextBoxFor(m => m.To, new
               {
                   type = "text",
                   @class = "airport-auto-complete",
                   auto_complete = "",
                   placeholder = "enter place or airport",
                   ng_model = "To"
               })
                </div>
                <div class="float-left">
                    @Html.LabelFor(m => m.ReturnAt, "Return:", new { @class = "block-display" })
                    @Html.TextBoxFor(m => m.ReturnAt, new
               {
                   type = "text",
                   @class = "end-trip-date date-input",
                   ng_model = "ReturnAt"
               })
                </div>
                <br style="clear: left;" />
            </div>
4

1 に答える 1

0

ng_model = "To"属性がこの問題の原因で あることが判明しました。ng-modelクライアント側のデータバインディングを処理するAngularJsフレームワークの組み込みディレクティブであり、このスコープにデータが存在しないため、データが表示されません。

ここで読むことができます: ngModel

于 2013-01-17T07:12:02.037 に答える