.Net MVC中SelectList绑定默认值失效的解决办法

61 篇文章 6 订阅
5 篇文章 0 订阅

 

        今天在使用MVC的下拉控件时,为其绑定数据使用了SelectList,但在修改数据的时候,默认值居然绑定失败?后来经过多番研究,原因在于控制器中提供的数据源变量名称和视图中下拉列表框的name名称一致了,导致绑定数据失败。

 

解决办法:将数据源变量名称和视图中下拉列表的name名称保持不一致即可。

 

控制器代码:

ViewBag.ModuleTypes = new SelectList(EnumHelper.GetItemValueList<ModuleType>(), "Key""Value");

试图代码:

@Html.ExtDropDown(m => m.ModuleType, (SelectList)ViewBag.ModuleTypes, new { })

 

说明:在上述的试图代码中,“ModuleType”就为下拉列表框的name值,“ModuleTypes”就为数据源变量名称。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,您需要创建一个数据库表来存储用户注册信息。表应该包括用户名、邮箱、密码等字段。 接下来,您需要创建一个用户注册页面。这个页面应该包括一个表单,用户可以输入他们的注册信息。当用户提交表单时,您需要将数据发送到服务器进行处理。 在服务器端,您需要编写一个Controller来处理用户注册请求。在Controller,您需要将用户提交的数据插入到数据库。 以下是一个.NET MVC用户注册的示例代码: 1. 创建数据库表 ``` CREATE TABLE [dbo].[User] ( [Id] INT IDENTITY (1, 1) NOT NULL, [UserName] VARCHAR (50) NOT NULL, [Email] VARCHAR (50) NOT NULL, [Password] VARCHAR (50) NOT NULL, PRIMARY KEY CLUSTERED ([Id] ASC) ); ``` 2. 创建用户注册页面 ``` @model UserRegisterViewModel @using (Html.BeginForm("Register", "Account", FormMethod.Post)) { @Html.AntiForgeryToken() <div class="form-group"> @Html.LabelFor(m => m.UserName) @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" }) </div> <div class="form-group"> @Html.LabelFor(m => m.Email) @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) </div> <div class="form-group"> @Html.LabelFor(m => m.Password) @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) </div> <button type="submit" class="btn btn-primary">Register</button> } ``` 3. 创建ViewModel ``` public class UserRegisterViewModel { [Required] public string UserName { get; set; } [Required] public string Email { get; set; } [Required] public string Password { get; set; } } ``` 4. 创建Controller ``` public class AccountController : Controller { private readonly string _connectionString = "YourConnectionString"; [HttpGet] public ActionResult Register() { return View(new UserRegisterViewModel()); } [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Register(UserRegisterViewModel model) { if (ModelState.IsValid) { var user = new User { UserName = model.UserName, Email = model.Email, Password = model.Password }; using (var connection = new SqlConnection(_connectionString)) { await connection.OpenAsync(); var command = new SqlCommand("INSERT INTO User (UserName, Email, Password) VALUES (@UserName, @Email, @Password)", connection); command.Parameters.AddWithValue("@UserName", user.UserName); command.Parameters.AddWithValue("@Email", user.Email); command.Parameters.AddWithValue("@Password", user.Password); await command.ExecuteNonQueryAsync(); } return RedirectToAction("Index", "Home"); } return View(model); } } ``` 在上面的代码,我们首先定义了一个连接字符串。然后,我们创建了一个Register()方法,用于返回用户注册页面。我们还创建了一个Register()方法,用于处理用户提交的表单数据。在这个方法,我们首先将用户提交的数据转换为一个User对象。然后,我们使用ADO.NET将这个对象插入到数据库。最后,我们重定向用户到主页。 这就是.NET MVC用户注册绑定数据库的基本步骤。您可以根据需要进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值