1

プロジェクトにasp.net mvc3(C#)を使用しています。私はこれが初めてです。名前、年齢、state_id などのデータを持つテーブルがあります。今、私は asp コントロール GRIDVIEW を取得するときに、テーブルのデータをグリッドビューにバインドし、2 列を編集およびビューとしてバインドする必要があります。MVCを介してどのように行うことができますか? 私はこれで完全に迷っています。

繰り返しますが、別の2つのテーブルがあります

1)Country_Master列があるcountry_id,country_name

2)City_Master列がありますstate_id,state_name

ドロップダウン リストで国を選択すると、対応する州のリストが別のドロップダウン リストに表示されるようにします。

4

2 に答える 2

1

ASPコントロールGRIDVIEWを使用すると、テーブルのデータがグリッドビューにバインドされ、編集およびビューとして2列にもバインドされます。MVCを介してどのように行うことができますか?

のいくつかの基本的な概念を誤解していると思いますASP.NET MVC。GridView などのサーバー側コントロールはなくなりました。ASP.NET MVC では、従来の Web フォームで使用されていた ViewState モデルや PostBack モデルはなくなりました。このため、Web フォームで使用していたサーバー側のコントロールはどれも ASP.NET MVC では機能しません。これは、Web 開発とはまったく異なるアプローチです。

ASP.NET MVC では、データを保持するモデルを定義することから始めることができます。

public class PersonViewModel
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Country { get; set; }
}

次に、DAL と通信してモデルにデータを入力するコントローラー:

public class PersonController: Controller
{
    public ActionResult Index()
    {
        IEnumerable<PersonViewModel> model = ... talk to your DAL and populate the view model
        return View(model);
    }
}

最後に、このモデルのデータを表示できる対応するビューがあります。

@model IEnumerable<PersonViewModel>
<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>Country</th>
        </tr>
    </thead>
    <tfoot>
    @foreach (var person in Model)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Age</td>
            <td>@person.Country</td>
        </tr>
    }
    </tfoot>
</table>

ASP.NET MVC ビューでは、いくつかの組み込みヘルパーを使用することもできます。たとえば、表形式の出力を簡素化できるWebGrid ヘルパーがあります。

@model IEnumerable<PersonViewModel>
@{
    var grid = new WebGrid();
}

@grid.GetHtml(
    grid.Columns(
        grid.Column("Name"),
        grid.Column("Age"),
        grid.Column("Country")
    )
)

getting started tutorials基本的な概念をよりよく理解するために、ASP.NET MVC について確認することをお勧めします。

于 2013-01-29T14:40:59.200 に答える
0

gridview の場合、 MvcContrib GridまたはJQuery Grid for MVCを使用できます。

于 2013-01-29T14:48:23.240 に答える