16

わかりました、私はこの MVC の世界全体に慣れていませんが、物事を成し遂げるにはかなり良い方法のようで、ここで機能させようとしています。

問題は、SQL データベースのテーブルから登録ページの単純なドロップダウン フォームにデータを取得できないことです。

私は、どこに物を置くべきか、テーブルを開くコードをどこに置くべきか、IDを選択するべきか、どこに置くべきか、response.writeそしてどのようにそれをビューに送るのか分かりません。

私のモデルはこれです:

    public class users
{
    public string name {get; set;}
    public int user_id {get; set;}
}

私のコントローラーはこれです:

    [HttpGet]
    public ActionResult ListUser()
    {
        return View();
    }

そして私の見解はこれです:

@model Community.Models.users

私は今2日間グーグルで検索し、YouTubeでいくつかのビデオを見ましたが、役に立たず、見つかりません. どなたか詳しい方お願いします。また、より多くの質問を参照できる優れたチュートリアルやフォーラムを教えてください。


このプロジェクトではまだ運がありません..

フォームを作成していて、そのフォーム内に db-loop ( IEnumerable) が必要ですが、現在のモデルはIEnumerable. 私はかなり行き詰まっており、たくさんのチュートリアルを見ましたが、それらはすべて1つの接続しかリストしていません.2つのモデルが必要な場合はどうすればよいですか?

これが私のコントローラーです。リストをビューに渡す必要があると思いますよね?

    public ActionResult Registration()
    {
        return View(db.users.ToList());
    }

IEnumerableモデルなしでビューでそのリストを取得するにはどうすればよいですか?

@neoistheone、あなたの例はあまり役に立ちませんでした。私のDBは次のように開きます:

private DataBaseContext db = new DataBaseContext();

方法はわかりませんが、接続が開きます。私は何時間も試しましたが、それはばかげているだけで、長い間寝ていません!

私は ASP-Classic fyi のプログラミングに慣れており、最新の言語と OOP のプログラミングに関する知識をアップグレードするための最初の真剣な試みです。

4

7 に答える 7

9

すでに素晴らしい答えがありますが、別のアプローチがあります。

userモデル、ListUserViewModelビューモデル、コントローラーとして使用UserControllerします。ビューモデルの役割は、不要なプロパティをモデル クラスに追加することなく、コントローラーからページに表示するために必要なすべての情報を運ぶことです。あなたの場合、データベースからドロップダウンリストへのユーザーのリスト。

モデル:

public class User     //By the way use singular when naming a class
{
    public string name {get; set;}
    public int user_id {get; set;}
}

ビューモデル

public class ListUserViewModel
{
    public list<User> Users{get; set;}
}

コントローラ

public class UserController : Controller
{
    private DataBaseContext db = new DataBaseContext();

    [HttpGet]
    public ActionResult ListUser()
    {
        var users = db.Users.ToList();

        var viewModel = new ListUserViewModel { Users = users };

        return View(viewModel);
    }
}

モデルとしてビューで User の代わりに ListUserViewModel を使用するようになりました

@model Community.Models.ListUserViewModel

そしてドロップダウン

@Html.DropDownListFor(m => m.Users, new SelectList(Model.Users, "user_id", "name"), " ")

説明:

Model.Users選択リスト データ ソースとしてユーザーのドロップダウン リストを作成しています。"user_id"選択したユーザーの値および"name"表示ラベルとして。最後の引数(空の文字列を入れます" ")は、選択前にドロップダウンが表示するデフォルト値です。

これがあなたや他の誰かに役立つことを願っています。

于 2016-10-16T20:19:23.313 に答える
2

これはデータベース内の私のテーブルです

ここに画像の説明を入力

私のアクションコントローラーを見てください

    // GET: Letters
    public ActionResult Index()
    {
        ViewBag.LetterStatus = new SelectList(LetterStatusService.GetAllLettersStatus(), "Id", (CultureHelper.GetCurrentCulture() == "ar") ? "NameArabic" : "Name", Request.QueryString["LetterStatus"]);
        return View();
    }

そしてビューで

  @Html.DropDownList("LetterStatus")

私が使用したコンストラクタは

new SelectList(
    list<Objlect> myListFromDatabase,
    string PropertyNameOfValueInHtml,
    string PropertyNameOfDesplayInHtml,
    string SelectedItemValue 
);

Request.QueryString["LetterStatus"]選択したアイテムを送信するため、この行QuerySrting

に基づいてCurrentCulture、表示する列を選択しました

結果はここに画像の説明を入力

しかし、これを行う最善の方法は、アイテムを取得または作成し、それらを繰り返しスローして選択タグを手動で生成することだと思います。私はこの回答でこのアプローチをよく説明しました

これがあなたに役立つことを願っています

于 2016-08-21T08:25:55.450 に答える