jQuery将Ajax调用中的数据传递给MVC操作方法

Krzysztof Patra

我准备并填充了两个列表(list-left和list-right)。然后,我有此JS代码将元素从一个列表移动到另一个列表。而且效果很好。

$(function () {
    $('body').on('click', '.list-group .list-group-item', function () {
        $(this).toggleClass('active');
    });
    $('.list-arrows button').click(function () {
        var $button = $(this), actives = '';
        if ($button.hasClass('move-left')) {
            actives = $('.list-right ul li.active');
            actives.clone().appendTo('.list-left ul');
            actives.remove();
        } else if ($button.hasClass('move-right')) {
            actives = $('.list-left ul li.active');
            actives.clone().appendTo('.list-right ul');
            actives.remove();
        }        
    });
});

但是说实话,当用户单击表单上的“提交”按钮时,我不知道如何将结果传递回代码隐藏?

这是我的cshtml代码:

@using AuthDatabase.Entities
@using Identity.Models
@model RoleEdit

@{
    ViewData["Title"] = "Edit role";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h1>@ViewData["Title"]</h1>
<br />
<h4>Roles</h4>
<hr />
<div asp-validation-summary="All" class="text-danger"></div>

<form method="post">
    <input type="hidden" name="roleName" value="@Model.Role.Name" />
    <input type="hidden" name="roleId" value="@Model.Role.Id" />
    <div class="row">
        <div class="dual-list list-left col-md-5">
            <h5>No roles</h5>
            <div class="well text-right">
                <div class="row">
                    <div class="col-md-10">
                        <div class="input-group">
                            <span class="input-group-addon glyphicon glyphicon-search"></span>
                            <input type="text" name="SearchDualList" class="form-control" placeholder="search" />
                        </div>
                    </div>
                </div>
                <ul class="list-group">
                    @foreach (AppUser user in Model.NonMembers)
                    {
                        <li class="list-group-item">@user.UserName</li>
                    }
                </ul>
            </div>
        </div>
        <div class="list-arrows col-md-1 text-center">
            <button class="btn btn-default btn-sm move-left" type="button">
                <span class="btn btn-primary"><</span>
            </button>

            <button class="btn btn-default btn-sm move-right" type="button">
                <span class="btn btn-primary">></span>
            </button>
        </div>
        <div class="dual-list list-right col-md-5">
            <h5>With roles</h5>
            <div class="well">
                <div class="row">
                    <div class="col-md-10">
                        <div class="input-group">
                            <input type="text" name="SearchDualList" class="form-control" placeholder="search" />
                            <span class="input-group-addon glyphicon glyphicon-search"></span>
                        </div>
                    </div>
                </div>
                <ul class="list-group">
                    @foreach (AppUser user in Model.Members)
                    {
                        <li class="list-group-item">@user.UserName</li>
                    }
                </ul>
            </div>
        </div>
    </div>
    <br />
    <a asp-action="Index" class="btn btn-secondary">Back to List</a>
    <button type="submit" class="btn btn-primary">Save</button>
</form>

@section Scripts
{
    <script src="~/js/lists.js" asp-append-version="true"></script>
}

而我的控制器:

       public async Task<IActionResult> Edit(string id)
        {
            IdentityRole role = await _roleManager.FindByIdAsync(id);
            List<AppUser> members = new List<AppUser>();
            List<AppUser> nonMembers = new List<AppUser>();
            foreach (AppUser user in _userManager.Users)
            {
                var list = await _userManager.IsInRoleAsync(user, role.Name) ? members : nonMembers;
                list.Add(user);
            }
            return View(new RoleEdit
            {
                Role = role,
                Members = members,
                NonMembers = nonMembers
            });
        }



        [HttpPost]
        public async Task<IActionResult> Edit(RoleModification model)
        {
            IdentityResult result;
            if (ModelState.IsValid)
            {
                foreach (string userId in model.AddIds ?? new string[] { })
                {
                    AppUser user = await _userManager.FindByIdAsync(userId);
                    if (user != null)
                    {
                        result = await _userManager.AddToRoleAsync(user, model.RoleName);
                        if (!result.Succeeded)
                            Errors(result);
                    }
                }
                foreach (string userId in model.DeleteIds ?? new string[] { })
                {
                    AppUser user = await _userManager.FindByIdAsync(userId);
                    if (user != null)
                    {
                        result = await _userManager.RemoveFromRoleAsync(user, model.RoleName);
                        if (!result.Succeeded)
                            Errors(result);
                    }
                }
            }

            if (ModelState.IsValid)
                return RedirectToAction(nameof(Index));
            else
                return await Edit(model.RoleId);
        }

[HttpPost] Edit操作要求RoleModification对象具有两个字符串数组(对列表进行更改->现在基于以前的解决方案,没有jquery)。仅通过一个列表权限也是合适的。

 public class RoleModification
    {
        [Required]
        public string RoleName { get; set; }
        public string RoleId { get; set; }
        public string[] AddIds { get; set; }
        public string[] DeleteIds { get; set; }
    }
阿里雷扎·马达德
  $('#submitBtn').on('click', function () {           
  let addIds = [];            
 $('.list-right ul li').each(function (index) {                
 addIds.push($(this).text());             
});  
ajaxSubmit(addIds);          
       });     
});
function ajaxSubmit(input){
$.ajax({
url:'/controller/action',
method:'POST',
data:input --- or {input}
success:function(){
console.log('success');},
error:function(x,y,z){
console.log(x,y,z)};}
}); 
}

和您的控制器muset像这样

public ActionResult Edit(List<string> input)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ajax JQuery将数据传递给POST方法

来自分类Dev

jQuery在Ajax中调用ASP.NET MVC C#中的操作方法

来自分类Dev

如何使用jquery调用操作方法并将搜索字符串传递给操作方法

来自分类Dev

如何使用下拉列表Ajax调用将数据从下拉列表传递到操作方法以保存数据

来自分类Dev

AJAX jQUERY将POST中的数据传递给codeigniter控制器

来自分类Dev

将逗号分隔值传递给 ASP.NET MVC 操作方法

来自分类Dev

jQuery将数据传递到MVC4中的Ajax函数

来自分类Dev

无法将数据传递给方法

来自分类Dev

如何通过jQuery回调将参数传递给控制器操作方法?

来自分类Dev

将字符串传递给操作方法重载

来自分类Dev

当调用Request.callback onCompleted()方法时,如何将Facebook返回的数据传递给Android中的片段?

来自分类Dev

MVC5使用Ajax将文本数据传递给控制器

来自分类Dev

如何将方法传递给指令并将其调用以将数据传递给嵌套指令?

来自分类Dev

如何在ASP.NET MVC中通过AJAX正确调用POST操作方法

来自分类Dev

如何在MVC中使用JQUERY AJAX将视图模型发布到操作方法

来自分类Dev

将动态数据传递给可调用服务的构造

来自分类Dev

无法在 jquery 中使用 Ajax 将数据传递给 php 函数

来自分类Dev

MVC-如何将数据传递给服务

来自分类Dev

将MVC数据传递给Knockout视图模型

来自分类Dev

MVC-如何将数据传递给服务

来自分类Dev

MVC 将模型数据传递给 JavaScript

来自分类Dev

无法通过ajax将json数据传递给php

来自分类Dev

将模型数据传递给dataTables的Ajax请求URL

来自分类Dev

无法通过 AJAX 将数据传递给 Laravel

来自分类Dev

jQuery AJAX POST 不将数据传递给 PHP 脚本

来自分类Dev

如何从锚中的href调用MVC操作方法?

来自分类Dev

从ASP.NET MVC中的布局调用操作方法

来自分类Dev

无法将数据传递给函数(jQuery)

来自分类Dev

将多个表单数据传递给jquery函数

Related 相关文章

  1. 1

    Ajax JQuery将数据传递给POST方法

  2. 2

    jQuery在Ajax中调用ASP.NET MVC C#中的操作方法

  3. 3

    如何使用jquery调用操作方法并将搜索字符串传递给操作方法

  4. 4

    如何使用下拉列表Ajax调用将数据从下拉列表传递到操作方法以保存数据

  5. 5

    AJAX jQUERY将POST中的数据传递给codeigniter控制器

  6. 6

    将逗号分隔值传递给 ASP.NET MVC 操作方法

  7. 7

    jQuery将数据传递到MVC4中的Ajax函数

  8. 8

    无法将数据传递给方法

  9. 9

    如何通过jQuery回调将参数传递给控制器操作方法?

  10. 10

    将字符串传递给操作方法重载

  11. 11

    当调用Request.callback onCompleted()方法时,如何将Facebook返回的数据传递给Android中的片段?

  12. 12

    MVC5使用Ajax将文本数据传递给控制器

  13. 13

    如何将方法传递给指令并将其调用以将数据传递给嵌套指令?

  14. 14

    如何在ASP.NET MVC中通过AJAX正确调用POST操作方法

  15. 15

    如何在MVC中使用JQUERY AJAX将视图模型发布到操作方法

  16. 16

    将动态数据传递给可调用服务的构造

  17. 17

    无法在 jquery 中使用 Ajax 将数据传递给 php 函数

  18. 18

    MVC-如何将数据传递给服务

  19. 19

    将MVC数据传递给Knockout视图模型

  20. 20

    MVC-如何将数据传递给服务

  21. 21

    MVC 将模型数据传递给 JavaScript

  22. 22

    无法通过ajax将json数据传递给php

  23. 23

    将模型数据传递给dataTables的Ajax请求URL

  24. 24

    无法通过 AJAX 将数据传递给 Laravel

  25. 25

    jQuery AJAX POST 不将数据传递给 PHP 脚本

  26. 26

    如何从锚中的href调用MVC操作方法?

  27. 27

    从ASP.NET MVC中的布局调用操作方法

  28. 28

    无法将数据传递给函数(jQuery)

  29. 29

    将多个表单数据传递给jquery函数

热门标签

归档