如何使用ASP.NET MVC,WEB API& amp ;;保存.NET会话值在数据库中angularjs [英] How to save .NET session value in database using ASP.NET MVC, WEB API & angularjs

查看:57
本文介绍了如何使用ASP.NET MVC,WEB API& amp ;;保存.NET会话值在数据库中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; amp ;;保存.NET会话值在数据库中angularjs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆