前端代码:
web api 代码:
UserModel
有以下问题请教:
1. BaseClass是我写的一个基类,如何让其它控制器都能继承它,因为控制器都继承了ApiController,不能继承两个。
2. 用户登陆完全没问题,但是修改密码时为什么前端总是提交到Login这个action,我明明指定了'api/user/ChangePassword'这个呀。另外说明一下UserModel中没有UserNewPasw属性。
如何实现我想要的修改密码功能?请各位讲讲这个前端提交参数到后端,是怎样的一种机制,不太懂MVC,尽量讲通俗些,谢谢。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<script>
function
Login() {
//创建ajax请求,将数据发送到后台处理
var
postData = {
UserID: $(
"#userid"
).val(),
UserPasw: $(
'#userpasw'
).val()
};
$.ajax({
type:
'POST'
,
url:
'api/user/Login'
,
data: postData,
dataType:
'json'
,
success:
function
(result) {
if
(result.statusCode == 200) {
alert(
'登陆成功!'
);
}
else
{
alert(
'登陆失败!'
);
}
},
error:
function
(xmlHttpRequest, textStatus, errorThrown) {
}
});
}
//修改密码
function
ChangePassword() {
//创建ajax请求,将数据发送到后台处理
var
postData = {
UserID: $(
"#userid"
).val(),
UserPasw: $(
'#userpasw'
).val(),
UserNewPasw: $(
'#usernewpasw'
).val()
};
$.ajax({
type:
'POST'
,
url:
'api/user/ChangePassword'
,
data: postData,
dataType:
'json'
,
success:
function
(result) {
if
(result.statusCode == 200) {
alert(
'登陆成功!'
);
}
else
{
alert(
'登陆失败!'
);
}
},
error:
function
(xmlHttpRequest, textStatus, errorThrown) {
}
});
}
</script>
|
web api 代码:
UserModel
1
2
3
4
5
6
7
8
|
public
class
UserModel
{
public
string
UserID {
get
;
set
; }
public
string
UserName {
get
;
set
; }
public
string
UserPasw {
get
;
set
; }
public
string
UserDept {
get
;
set
; }
public
string
UserGroup {
get
;
set
; }
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
public
class
UserController : ApiController
{
BaseClass baseClass =
new
BaseClass();
// 我的一个基类
/// <summary>
/// 用户登陆
/// </summary>
/// <param name="um">用户 Model</param>
/// <returns></returns>
public
HttpResponseMessage Login(UserModel um)
{
string
sql =
"select count(*) from DSCMA where MA001='"
+ um.UserID +
"' and MA003='"
+ um.UserPasw +
"'"
;
int
iFlag = DBConnSql.ExcuteScalar(AppConfiguration.Login, sql);
string
flag = iFlag == 0 ? baseClass.Failure() : baseClass.Success();
return
flag.toJson();
// toJson 是我扩展的一个方法
}
public
HttpResponseMessage ChangePassword(
string
UserID,
string
UserPasw,
string
UserNewPasw)
{
string
sql =
"select * from vw_users where userid='"
+ UserID +
"' and userpasw='"
+ UserPasw +
"'"
;
DataTable dt = DBConnSql.GetDataTable(AppConfiguration.Login, sql);
string
result =
""
;
if
(dt.Rows.Count > 0)
{
//更新用户密码
result = baseClass.Success(
"修改成功!"
);
}
else
{
result = baseClass.Failure(
"用户名或密码错误!"
);
}
return
result.toJson();
}
}
|
有以下问题请教:
1. BaseClass是我写的一个基类,如何让其它控制器都能继承它,因为控制器都继承了ApiController,不能继承两个。
2. 用户登陆完全没问题,但是修改密码时为什么前端总是提交到Login这个action,我明明指定了'api/user/ChangePassword'这个呀。另外说明一下UserModel中没有UserNewPasw属性。
如何实现我想要的修改密码功能?请各位讲讲这个前端提交参数到后端,是怎样的一种机制,不太懂MVC,尽量讲通俗些,谢谢。