【发布时间】:2016-10-14 18:49:49
【问题描述】:
我是 ASP.net MVC 的新手,我正在尝试构建一个非常基本的登录表单,一切正常,我添加了登录方法的存储过程和“添加功能导入”,问题是在所有情况下它总是返回一个值“-1”。一起来看看吧……
1- MovableAssetsDB.context.cs
public virtual int LoginToMovable(string userName, string password)
{
var userNameParameter = userName != null ?
new ObjectParameter("UserName", userName) :
new ObjectParameter("UserName", typeof(string));
var passwordParameter = password != null ?
new ObjectParameter("Password", password) :
new ObjectParameter("Password", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("LoginToMovable", userNameParameter, passwordParameter);
}
2- 我创建了一个名为“Data”的类来处理方法并调用存储过程
public int Login(string username, string password)
{
using (var DBcontext = new MovableAssetsEntities())
{
int userId = DBcontext.LoginToMovable(username, password);
return userId;
}
}
3-在“主页”视图中,这里是处理登录过程的表单代码和剃须刀代码
@{
Layout = null;
}
@{
ViewBag.Title = "Login";
}
@{
if (IsPost)
{
string username = Request.Form["username"];
string password = Request.Form["password"];
int userId = new MovableAssets.Classes.Data().Login(username, password);
if (userId > 0)
{
<script>alert("yes");</script>
}
else
{
<script>alert("No");</script>
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Movable Assets</title>
<link rel="stylesheet" href="@Url.Content("~/Content/Custom/css/style.css")">
</head>
<body>
<div class="container">
<p id="home_title">Movable Assets</p>
<section id="content">
<form action="#" method="post">
<h1>Login</h1>
<div>
<input type="text" placeholder="Username" required="" id="username" name="username" />
</div>
<div>
<input type="password" placeholder="Password" required="" id="password" name="password" />
</div>
<div>
<input type="submit" value="Log in" />
</div>
</form><!-- form -->
</section><!-- content -->
</div><!-- container -->
</body>
</html>
4-存储过程
ALTER PROCEDURE [dbo].[LoginToMovable]
@UserName nvarchar(50),
@Password nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT ID FROM Utilities.dbo.Users WHERE Utilities.dbo.Users.LogIn = @UserName AND Utilities.dbo.Users.Password = @Password
AND AppCode = '9'
END
每当我写下任何登录凭据时,我都会将 userId 的值设为 -1 任何建议?!
【问题讨论】:
-
把 LoginToMovable SP 代码放在这里。
-
请显示 LoginToMovable 代码
-
ObjectContext.ExecuteFunction丢弃从函数返回的任何结果;并返回受执行影响的行数(参见msdn.microsoft.com/en-us/library/dd986915(v=vs.110).aspx)。会不会是这个原因? -
你知道是EDM自动生成的,不是我写的,有替代代码吗?
标签: c# asp.net asp.net-mvc entity-framework razor