Entity Framework を使用して、既存の Oracle データベースのいくつかのテーブルに基づいてモデルを構築する単純な ASP.NET MVC 3 サイトを構築しています (つまり、「データベース ファースト」の方法を使用してモデルを構築しました)。私は今、シンプルなブログ タイプのサイトを持っています。これは、多くの言語で MVC を学んでいるので、よく知っています。
自動生成されたビューの一部を変更したいと考えています。特に変更したいのは、テーブルの 1 つに「Visible」というフィールドがあることです。これは、表示アプリケーションが行を表示データとして使用する必要があるかどうかを示す単純な数値 (0 または 1) です。現在、自動生成される単純なテキスト フィールドがあります。
<div class="editor-field">
@Html.EditorFor(model => model.VISIBLE)
@Html.ValidationMessageFor(model => model.VISIBLE)
</div>
私がやりたいのは、これを True や False などの文字列値を持つドロップダウン ボックスに置き換えることです。アプリケーションは、0 のエントリを false として表示し、その逆も同様に表示する必要があります。ユーザーがトグルを切り替えたい場合は、ドロップダウンを使用してそれを行うことができ、送信をクリックしたときに数値の更新を行うことを理解できる必要があります。これはどのように行うことができますか?
ドロップダウンに 2 つ以上の値が入力される例を数え切れないほど見てきましたが、そのような場合、すべての個別の値を取得し、それらをリストに入れ、次にコントローラーにロジックを追加できることを理解しています。リストを ViewBag に追加します。ただし、私の場合、可能な数値は 2 つしかないため、より単純でより受け入れられる方法があるはずです。
どんな助けでも大歓迎です。
アップデート
Quinton の回答に従って、上記のコードをモデルに配置しようとしています。これが私の現在のモデルです:
namespace CurrentActivityBlog
{
using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
public partial class TBLCURRENTACTIVITY
{
public string TITLE { get; set; }
public string DESCRIPTION { get; set; }
public System.DateTime DATETIME { get; set; }
public short VISIBLE { get; set; }
public decimal ID { get; set; }
public IEnumerable<SelectedListItem> PossibleValues { get; set; }
public TBLCURRENTACTIVITY() {
PossibleValues = new[] { new SelectListItem { Value = "0", Text = "Hidden" },
new SelectListItem { Value = "1", Text = "Visible" } };
}
}
}
このソリューションをビルドすることはできませんが、Visual Studio 2010 はそれを教えてくれます
「型または名前空間名 'SelectedListItem' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」
ご覧のとおり、私は持っています
System.Web.UI.controls の使用
System.Web への参照を追加しました。私が忘れていること、または知っておくべきことはありますか (EF を使用して生成されたモデルが予想とは異なる動作をするなど)?
再度、感謝します。