【问题标题】:How to bind data from model to ASP Controller?如何将数据从模型绑定到 ASP 控制器?
【发布时间】:2013-01-29 14:34:24
【问题描述】:

我正在为我的项目使用 asp.net mvc3(C#)。我是新来的。我有一个表,其中包含名称、年龄、state_id 等数据。现在我希望当我使用 asp 控件 GRIDVIEW 时,它应该将我的表的数据绑定到 gridview 以及 2 列作为编辑和视图。我怎么能通过MVC做?我完全迷失了。

我又多了两张桌子

1)Country_Master 有列country_id,country_name

2)City_Master 具有列 state_id,state_name

我希望当我在下拉列表中选择国家时,其对应的州列表应该显示在另一个下拉列表中。

【问题讨论】:

  • 你试过一些代码吗?如果有,请发帖

标签: c# asp.net-mvc-3 sql-server-2008-r2


【解决方案1】:

当我使用 asp 控制 GRIDVIEW 时,它应该将我的表数据绑定到 gridview 和 2 列作为编辑和视图。我该怎么做 MVC?

我认为您误解了ASP.NET MVC 中的一些基本概念。不再有任何服务器端控件,例如 GridView。在 ASP.NET MVC 中,不再有经典 WebForms 中使用的 ViewState 或 PostBack 模型。由于这个原因,您可能在 WebForms 中使用过的任何服务器端控件都不能在 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 helper 允许您简化表格输出:

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

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

我建议您阅读有关 ASP.NET MVC 的 getting started tutorials 以更好地熟悉基本概念。

【讨论】:

    【解决方案2】:

    对于gridview,可以使用MvcContrib GridJQuery Grid for MVC

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2020-05-28
      • 2012-06-30
      • 2012-08-01
      • 1970-01-01
      • 2018-11-27
      相关资源
      最近更新 更多