Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 使用Asp.NETMVC3向用户显示生成的Id_C#_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

C# 使用Asp.NETMVC3向用户显示生成的Id

C# 使用Asp.NETMVC3向用户显示生成的Id,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,我正在使用asp.net mvc 3的创建表单,用户在其中输入信息并提交,以将键入的信息保存到数据库中。我想向用户显示他们刚刚创建的数据库行生成的Id(通过表单成功提交视图,您的Id号是…)。有人知道实现这一点的方法吗?我假设您正在使用表单身份验证,并且能够保留新用户名。将用户名传递给成功控制器,并使用.填充模型。您的问题需要更详细一些,但是在进行数据持久化策略时,应该考虑一些事情。如果您使用的是Asp.Net成员资格提供程序,则还需要指定该提供程序。正如Bildr所指出的,有返回用户信息的方法

我正在使用asp.net mvc 3的创建表单,用户在其中输入信息并提交,以将键入的信息保存到数据库中。我想向用户显示他们刚刚创建的数据库行生成的Id(通过表单成功提交视图,您的Id号是…)。有人知道实现这一点的方法吗?

我假设您正在使用表单身份验证,并且能够保留新用户名。将用户名传递给成功控制器,并使用.

填充模型。您的问题需要更详细一些,但是在进行数据持久化策略时,应该考虑一些事情。如果您使用的是Asp.Net成员资格提供程序,则还需要指定该提供程序。正如Bildr所指出的,有返回用户信息的方法,但我不建议使用该提供程序,除非您需要,因为它在MVC4中被“简单成员资格提供程序”取代

如果您使用存储库模式,则可以让类从公共接口继承。添加类型为T的实体时,它会将该实体返回给用户;执行保存时,它不会返回。当您跨越边界时(例如使用WCF服务)这种方法非常方便,并且您正在传递一个包含多个子对象的复杂对象图。当然,您可以更灵活一点,让save方法简单地返回所创建对象的ID

 public interface IRepository<T>
{
    /// <summary>
    /// Saves the specified object and returns it back to the user.
    /// </summary>
    /// <param name="model">The model.</param>
    /// <returns>The created class</returns>
    T Add(T model);
    /// <summary>
    /// Persist the specified object.
    /// </summary>
    /// <param name="model">The model.</param>
    void Save(T model);
}

如果你能澄清你的问题,我很乐意提供更多的细节。祝你好运

你用什么ORM来访问你的数据库?对不起,Nicholas,我对编程界很陌生,不太清楚你的意思。我将实体框架与SQL Server结合使用,如果您能详细说明,我可能会更好地回答您。是否要获取新数据库行的主键id?如果是这样,EF会在您调用
SaveChanges
时为您设置它-请参阅@James answer的结尾。谢谢您的回答帮助了我很多
  var foo = new Foo{ Name="goo"}
  _modelContext.MyDBSetFoos.Add(foo);
  ((ModelContext)_modelContext).SaveChanges();
  return foo.Id;