C# 积垢编辑可以';由于字符串id,无法检索数据
我有一张名为SectionUser的表格,如: 区段用户C# 积垢编辑可以';由于字符串id,无法检索数据,c#,asp.net-mvc,C#,Asp.net Mvc,我有一张名为SectionUser的表格,如: 区段用户 用户ID(varchar(255))(主键) 姓名(varchar(255)) 以下是示例值: USER ID | NAME EVTAB | ELMER TABER FAYKVIL | FAYK VILLET 我在控制器中有一个创建操作,可以成功创建一个分区用户。我的主要问题是当我编辑的时候。我无法得到这个值。例如,我输入了错误的用户ID,我想对其进行编辑。用户ID始终为空。这意味着我要编辑我的主键 控制器: public A
- 用户ID(varchar(255))(主键)
- 姓名(varchar(255))
USER ID | NAME
EVTAB | ELMER TABER
FAYKVIL | FAYK VILLET
我在控制器中有一个创建操作,可以成功创建一个分区用户。我的主要问题是当我编辑的时候。我无法得到这个值。例如,我输入了错误的用户ID,我想对其进行编辑。用户ID始终为空。这意味着我要编辑我的主键
控制器:
public ActionResult EditUser(string USER_ID)
{
if (USER_ID == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
SectionUser section = db.SectionUsers.Find(USER_ID);
if (section == null)
{
return HttpNotFound();
}
return View(section);
}
视图(cshtml)
@使用(Html.BeginForm(“EditUser”、“Admin”、FormMethod.Post、,
新的{enctype=“multipart/form data”})
{
@Html.AntiForgeryToken()
部分
@Html.ValidationSummary(true,“,new{@class=“text danger”})
@Html.HiddenFor(model=>model.USER\u ID)
@LabelFor(model=>model.USER_ID,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.USER_ID,new{htmlAttributes=new{@class=“form control”}})
@Html.ValidationMessageFor(model=>model.USER_ID,“,new{@class=“text danger”})
@LabelFor(model=>model.NAME,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.NAME,new{htmlAttributes=new{@class=“form control”})
@Html.ValidationMessageFor(model=>model.NAME,“,new{@class=“text danger”})
}
视图(索引)
@DisplayNameFor(model=>model.USER\u ID)
@DisplayNameFor(model=>model.NAME)
@foreach(模型中的var项目){
@DisplayFor(modeleItem=>item.USER\u ID)
@DisplayFor(modelItem=>item.NAME)
@ActionLink(“编辑”、“编辑用户”,新的{id=item.USER\u id.ToString().Trim()})|
@ActionLink(“Details”,“DetailsUser”,new{id=item.USER\u id})|
@ActionLink(“删除”,“删除用户”,新的{id=item.USER_id})
}
所以我这里的问题是,我在index.cshtml上使用的参数是错误的。这是旧代码:
@Html.ActionLink("Edit", "EditUser", new { id = item.USER_ID.ToString().Trim() })
新代码:
@Html.ActionLink("Edit", "EditUser", new { USER_ID = item.USER_ID.ToString().Trim() })
正如您在我的EditUser操作中所看到的,参数是字符串USER\u ID。如果您输入了错误的用户ID,您要编辑什么?该用户id在系统中不存在。我可以成功创建用户id和名称,因此在我的索引中,我有编辑链接来编辑我想要的行。当我尝试在调试模式下运行应用程序时,用户id为null。您应该使用
@Html.ActionLink(“编辑”,“编辑用户”,新建{user\u id=item.user\u id.ToString().Trim()})
。参数的名称必须匹配参数必须匹配。将方法中的参数更改为string id
或将链接更改为new{user\u id=item.user\u id}
,这样您就不需要.ToString().Trim()
@Html.ActionLink("Edit", "EditUser", new { id = item.USER_ID.ToString().Trim() })
@Html.ActionLink("Edit", "EditUser", new { USER_ID = item.USER_ID.ToString().Trim() })