0

私はasp.net MVCの新しい開発者です。ポップアップモデルで編集をクリックした後、グリッドビューに編集ボタンがあり、すべてのデータを表示できます。例えば:

私のデータベースには顧客テーブルの4つの列があります:ID(PK)、名前、姓、連絡先IDテキストボックスが表示されないのは正常です!ただし、編集ボタンをクリックした後、名前を変更すると、SurName は HttpPost Edit controller を送信します。驚きのイベントがあります: ıd が消えます! グーグル後:


@using (Html.BeginCollectionItem("Kortingartikel")) { 

    @Html.HiddenFor(x => x.Artikelid)
    @Html.TextBoxFor(x => x.Artikelnaam)
    @Html.TextBoxFor(x => x.Prijs)

}

Hiddenfor は解決策です。しかし、解決策は私を満足させることはできません。なぜidが消えるのか、hiddenforなしでid値を保持する方法は?

4

1 に答える 1

1

これは、viewstate を使用して情報を保存する asp.net Web フォームではありません。MVC は回避策なしで純粋な html を使用します。したがって、基本的に、投稿にないものは存在しません。

私が考えることができる HiddenFor を使用しない方法は、Url に ID を含めることです。フレームワークは、このようなメソッドにバインドするのに十分スマートでなければなりません

 public ViewResult MyAction(int id, MyViewModel viewModel)
 {

 }
于 2012-04-10T08:47:30.497 に答える