提问人:dgad 提问时间:6/9/2023 更新时间:6/9/2023 访问量:12
通过 js 脚本将值从 ASP cshtml 传递到控制器
Passsing a value from an ASP cshtml into through js script to a controller
问:
上下文:
我有 ASP.NET CORE 6 项目。
我在显示用户的表格中添加了一个按钮。此按钮会触发一个模式窗口,稍后该窗口将包含一小段逻辑(重置用户的密码)。
需要:
模式窗口实际上会触发并且对每一行都有效,但我无法将参数从表的行按钮传递到控制器中。
视图 (.cshtml):
<table class="table xtable-striped">
<thead>
<tr>
...
</tr>
</thead>
<tbody class="tablealtrow">
@foreach (var user in Model)
{
<tr>
<td>@user.UserName</td>
...
<td>
<a class="btn btn-primary" id="btnShowModal">Reset Password</a>
</td>
</tr>
}
</tbody>
</table>
...
<div class="modal fade" id="Modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body" />
</div>
</div>
</div>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
$('[id*=btnShowModal]').on("click", function ()
{
$.get("@Url.Action("ResetPassword","UserRoles",
function (data)
{
$('.modal-body').html(data);
})
$("#Modal").modal('show');
});
$("#btnHideModal").click(function ()
{
$("#Modal").modal('hide');
});
});
</script>
模型:
可能会有一个 UserIdentity 和 UserManager 实例,但有一段时间我让它变得简单。
public class ResetPasswordModel
{
public int Id { get; set; }
public string Name { get; set; }
}
控制器:
在这里,我正在创建一个带有虚拟数据的 ResetPasswordModel,但希望从视图中获取此处的用户 ID。
public IActionResult ResetPassword()
{
return PartialView("ResetPassword", new ResetPasswordModel() { Id = 1, Name="TESTTESTTEST" });
}
模态视图模型:
用户单击“重置”按钮后,将存在重置密码的逻辑。此外,还将显示临时密码。我会自己管理这个逻辑。
@model ResetPasswordModel
<p>You are about to reset the password for the user: @Model.Name</p>
<a class="btn btn-secondary" data-dismiss="modal">Close</a>
<a class="btn btn-primary">Reset</a>
已经尝试过:
尽管进行了多次尝试,我还是无法管理它。其中:
- use 而不是 .
$.ajax
$.get
- 设置按钮的属性
data-user-name="@user.UserId"
- 尝试以某种方式通过 View 元素实例将值获取到 JS 变量中并将其传递给 action:
CONTROLLER:
public IActionResult ResetPassword(string parameterUSERID)
JS SCRIPT:
var parameterTEST = $('#userId').val;
var parameterTEST = $(this).data('user-name');
$.get("@Url.Action("ResetPassword","UserRoles", new { parameterUSERID = parameterTEST })", ... )
对不起,这样的业余问题。这实际上是我的第一个JS任务。
答: 暂无答案
评论