如何使用ASP.NET MVC,WEB API& amp ;;保存.NET会话值在数据库中angularjs [英] How to save .NET session value in database using ASP.NET MVC, WEB API & angularjs
问题描述
我有登录界面。验证后,user_id将保存在会话中。在每个注册表单中,我想将注册表单数据和USER_ID保存在数据库中。
我使用MVC,使用AngularJs的WEB API来制作这个应用程序。我无法将会话值传递给angularjs。 我需要示例代码,通过它我可以使用AngularJs保存.Net会话值。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
< span class =code-keyword> public async 任务< ActionResult>登录(LoginViewModel模型, string returnUrl)
{
if (ModelState.IsValid )
{
var user = await UserManager.FindAsync(model.Email, model.Password);
if (user!= null )
{
会话[ USER_ID] = user.Id;
await SignInAsync(user,model.RememberMe);
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError( , 用户名或密码无效。< /跨度>);
}
}
// 如果我们走到这一步,失败的东西,重新显示表格
return 查看(模型);
}
AngularJs控制器:我想将会话值即USER_ID传递给此控制器,以便PROG_NAME&可以保存USER_ID。 PROG_CODE。我的PROGRAM表有USER_ID列。
// 保存表单数据
$ scope.save = function (){
var program = {
PROG_NAME:$ scope.PROG_NAME,
PROG_CODE:$ scope.PROG_CODE
};
var saverecords = programService.save(program);
saverecords.then( function (d){
$ scope.PROG_ID = d.data.PROG_ID;
loadProgram();
swal( 成功插入Reord);
},
function (){
swal( 糟糕.., 保存,' error');
});
}
AngularJs服务:
myapp.service(' programService', function ($ http){
this .getAllPrograms = < span class =code-keyword> function (){
return $ http.get( / api / ProgramAPI);
}
// save
this .save = 功能(程序){
调试器;
var request = $ http({
method:' post',
url : ' / api / ProgramAPI /',
data:program
});
return request;
}
网络API:
// POST api / ProgramAPI
[ResponseType( typeof (PROGRAM))]
public IHttpActionResult PostProgram(PROGRAM program)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.PROGRAM.Add(program);
db.SaveChanges();
return CreatedAtRoute( DefaultApi, new {id = program.PROG_ID},program);
}
请帮助......
我尝试过:
//保存表格数据
$范围.save = function(){
调试器;
var USER_ID ='<%= Session [USER_ID]%>';
var program = {
PROG_NAME:$ scope.PROG_NAME,
PROG_CODE:$ scope.PROG_CODE,
CREATED_BY:USER_ID
};
var saverecords = programService.save(program);
saverecords.then(function(d){
$ scope.PROG_ID = d.data.PROG_ID;
loadProgram();
swal(Reord inserted successfully);
},
function(){
swal(Oops ..,保存时出错,错误);
}) ;
}
< blockquote> scope.save = function (){
var program = {
PROG_NAME:
scope.PROG_NAME,
PROG_CODE:
scope.PROG_CODE
};
var saverecords = programService.save(program);
saverecords.then( function (d){
Hi,
I have a login screen. After authentication, user_id will be saved in the session. In every registration form I want to save the registration form data and USER_ID in the database.
I have used MVC, WEB API with AngularJs to make this application. I am unable to pass session value to angularjs. I need sample code through which I can save .Net session value using AngularJs.
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindAsync(model.Email, model.Password);
if (user != null)
{
Session["USER_ID"] = user.Id;
await SignInAsync(user, model.RememberMe);
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError("", "Invalid username or password.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
AngularJs Controller: I want to pass the session value i.e USER_ID to this controller so that USER_ID can be saved with PROG_NAME & PROG_CODE. My PROGRAM table having USER_ID column.
//save form data
$scope.save = function () {
var program = {
PROG_NAME: $scope.PROG_NAME,
PROG_CODE: $scope.PROG_CODE
};
var saverecords = programService.save(program);
saverecords.then(function (d) {
$scope.PROG_ID = d.data.PROG_ID;
loadProgram();
swal("Reord inserted successfully");
},
function () {
swal("Oops..", "Error occured while saving", 'error');
});
}
AngularJs Service:
myapp.service('programService', function ($http) {
this.getAllPrograms = function () {
return $http.get("/api/ProgramAPI");
}
//save
this.save = function (program) {
debugger;
var request = $http({
method: 'post',
url: '/api/ProgramAPI/',
data: program
});
return request;
}
Web API:
// POST api/ProgramAPI
[ResponseType(typeof(PROGRAM))]
public IHttpActionResult PostProgram(PROGRAM program)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.PROGRAM.Add(program);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = program.PROG_ID }, program);
}
Please help...
What I have tried:
//save form data
$scope.save = function () {
debugger;
var USER_ID = '<%=Session["USER_ID"]%>';
var program = {
PROG_NAME: $scope.PROG_NAME,
PROG_CODE: $scope.PROG_CODE,
CREATED_BY: USER_ID
};
var saverecords = programService.save(program);
saverecords.then(function (d) {
$scope.PROG_ID = d.data.PROG_ID;
loadProgram();
swal("Reord inserted successfully");
},
function () {
swal("Oops..", "Error occured while saving", 'error');
});
}
scope.save = function () { var program = { PROG_NAME:
scope.PROG_NAME, PROG_CODE:
scope.PROG_CODE }; var saverecords = programService.save(program); saverecords.then(function (d) {
这篇关于如何使用ASP.NET MVC,WEB API& amp ;;保存.NET会话值在数据库中angularjs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!