Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 积垢编辑可以';由于字符串id,无法检索数据_C#_Asp.net Mvc - Fatal编程技术网

C# 积垢编辑可以';由于字符串id,无法检索数据

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

我有一张名为SectionUser的表格,如:

区段用户

  • 用户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() })