0

初心者なので、些細な質問ですみません。(ASP.Net MVC4)

多くの投稿/チュートリアルを読んだ後、アプローチ方法についてはまだわかりません。私がやろうとしているのは、インデックスページに 3 つのドロップダウン リストを作成することです。たとえば、国、会社、支店などです。EFを使用してデータベースにリンクされている同じデータモデルがあります。インデックス ページにすべてのデータをリストすることができました。ただし、ドロップダウンリスト内にそれらが必要です。

質問は、そのためのコントローラーをどのように作成するのですか? 現在、コントローラーは次のようになっています。

public class HomeController : Controller
{
    private CorpCostEntities db = new CorpCostEntities();

    public ActionResult Index()
    {
        return View();
    }

    ...
    ...

}

データを入力するために、テーブルごとに個別のActionResultメソッドを作成する必要がありますか? または、Index(Country country)、Index(Company comp)、Index(Branch branch) などの Index() のメソッド オーバーロードを使用しますか?

次の質問は、さまざまな ActionResult メソッドがあるため、そのために別のビューを作成する必要がありますか? シンプルな MVC 構造を使用しています。ViewModel や MVC 以外のものはありません。

最初に複数のドロップダウンリストのコントローラーを作成し、次にそれらを既存のビューページに表示するアプローチは正確には何ですか?

事前に助けてくれてありがとう。

4

2 に答える 2

0

ビューのレンダリングに必要なすべてのオブジェクトを含むViewModel(CorpCastViewModel)の作成を検討することもできます。

次に、実際のCorpCostModelのプロパティだけでなく、ルックアップコレクションやビューに必要なその他のもののプロパティもあります。

次のようにエディターを作成できます:@ Html.EditorFor(model => model.CorpCostModel.SomeField)および@ Html.DropDownListFor(model => model.CorpCostModel.CorpCountryId、new SelectList(Model.CountryList、 "CountryId "、 "国名")、 "")

于 2012-12-03T13:28:00.723 に答える
0

いいえ、タイプごとに個別のアクションは必要ありません。これらの値を ViewBag に投げて、ビューで読み取るだけです (これをドロップダウン要素にロードする方法は次のとおりです)。

public class HomeController : コントローラ { private CorpCostEntities db;

public HomeController(){
db = new CorpCostEntities();
ViewBag.CountryList = db.GetCountryList();
ViewBag.CompanyList = db.GetCompanyList();
ViewBag.BranchList = db.GetBranchList();
}
public ActionResult Index()
{
    return View();
}

}

「次の質問は、さまざまな ActionResult メソッドがあるため、そのために別のビューを作成する必要がありますか?」に関して、私はあなたが何を求めているのかはっきりしていませんが、私はそれを仮定に当てはめます.... (GET)ActionResults をページと考えてください (アクション メソッドは「ページ」を返すようにロックされているだけではありませんが、ご容赦ください)。顧客のリストを表示するアクション「インデックス」があるとします。インデックス アクションとインデックス ビューがあります。ここで、編集画面を追加します。これは、別のアクション、編集、および表示、Edit.cshtml になります。

于 2012-11-29T17:42:13.190 に答える