0

私はそれをやろうとしています:

  1. モデルを作成し、セッションに追加してビューに送信します。
  2. ビューのモデル フィールドを変更する
  3. コントローラーで更新されたセッションからモデルを取得する

問題は、テキストボックスの値を変更しているときにモデルが更新されないことです。かみそりで何かが欠けていると確信しています。

@model MvcTestApp.Models.Car

<div class="b1">

    <div class="b2">@Html.EditorFor(e => e.KM)</div>                    
    <div class="b2">@Html.EditorFor(e => e.RegistrationNumber)</div>

</div>

@Html.ActionLink("Car", "sendCar")

コントローラ: SendCar で、モデルを更新したいと思います。

namespace MvcTestApp.Controllers
{
    public class CarController : Controller
    {
        public ActionResult Show()
        {
            var model = new MvcTestApp.Models.Car()
            {
                RegistrationNumber ="12345",
                KM = "12345"
            };

            Session["temp"] = model;
            return View("Show",Session["temp"]);
        }


        public ActionResult sendCar()
        {
           return View("Show", Session["temp"]);
        }       

    }
}

モデル:

namespace MvcTestApp.Models
{

    public class Car
    {

        [DataType(DataType.Text)]
        public string KM { get; set;}

        [DataType(DataType.Text)]
        public string RegistrationNumber { get; set;}

    }  
}
4

3 に答える 3

0

モデルを更新するには、sendCar コントローラーを作成する必要があります。現在、行ったすべての変更は、ページから移動するまでローカルでのみ保持されます。変更したモデルをサーバーに戻す必要があります。

この例の「編集の処理」の部分を見て、どのように実行できるかを確認してください。

Asp.net チュートリアル

于 2012-07-23T08:35:35.877 に答える
0

これを行う方法は、送信機能を使用してモデルの詳細をフォームにラップすることです。次に、sendCar メソッドで Car オブジェクトを取得すると、モデル バインディングが新しいオブジェクトのすべてを設定します。

これを保持したい場合 (これはテスト目的のためだけだと思いますか?)、show メソッドで返す車をクラス変数にします。

于 2012-07-23T08:36:59.543 に答える
-1

フォームからコントローラーにデータを送信する方法を説明する ASP.NET MVC に関する初心者向けチュートリアルを読む必要があります。これを行う方法を完全に認識していないようです。

「何か」が欠けているわけではありません。フォームからコントローラーへのデータの送信に関するすべてが欠けています。

于 2012-07-23T08:35:45.567 に答える