如何捕获AJAX在ASP.NET Razor页面中发送的数据?
我正在尝试使用点击的用户数据来填充部分视图。这是代码:
<tbody class="text-center ">
@foreach (var user in Model.UserList)
{
<tr key="@user.Id" id="@user.Id" class="useridinfo clickable text-center row_hover "
data-toggle="ajax-admin" data-url="@Url.Page("/AdminPage", "_UserInfo_AdminPartial")"
@*onclick="ShowUserInfo(@user.Id)"*@>
<th scope="col" style="width:500px">@user.Email</th>
</tr>
}
</tbody>
c#
public PartialViewResult OnGetUserInfo_AdminPartial(string UserId)
{
UserList = _context.Users.ToList();
return new PartialViewResult
{
ViewName = "_UserInfo_AdminPartial",
ViewData = new ViewDataDictionary<User>(ViewData, new User())
//ViewData = new ViewDataDictionary<User>(ViewData, _context.Users.FirstOrDefault(p=>p.Id== UserId))
};
}
jQuery
$(function () {
var placeholderElement = $('#user_placeholder');
var ids = $(".useridinfo").attr("id");
$('tr[data-toggle="ajax-admin"]').click(function (userId) {
var url = $(this).data('url');
$.ajax({
type: "GET",
url: url,
// data: JSON.stringify({ "UserId": ids }),
data: ids,
success: function () {
placeholderElement.load("/AdminPage?handler=UserInfo_AdminPartial");
}
});
console.log(ids)
});});
部分视图,当前
@model Data.Account.User
@{
}
<div id="user_partial" class="ceva">
<form asp-page-handler="UserInfo_AdminPartial"></form>
<h5>test</h5>
<h6>@Model.Id</h6>
</div>
使用以下方式很空,目前非常空心:viewData = new ViewDateDictionary&lt;(viewData,new user(new user())
有效,但它使用捕获的ID创建新用户。我想将带有该ID的现有用户发送到部分视图中,但是字符串UserId
始终为null。因此,ID是发送的,但我不知道如何捕获它。我该怎么办?
I'm trying to populate a partial view with the data of the user i clicked on. Here is the code:
<tbody class="text-center ">
@foreach (var user in Model.UserList)
{
<tr key="@user.Id" id="@user.Id" class="useridinfo clickable text-center row_hover "
data-toggle="ajax-admin" data-url="@Url.Page("/AdminPage", "_UserInfo_AdminPartial")"
@*onclick="ShowUserInfo(@user.Id)"*@>
<th scope="col" style="width:500px">@user.Email</th>
</tr>
}
</tbody>
c#
public PartialViewResult OnGetUserInfo_AdminPartial(string UserId)
{
UserList = _context.Users.ToList();
return new PartialViewResult
{
ViewName = "_UserInfo_AdminPartial",
ViewData = new ViewDataDictionary<User>(ViewData, new User())
//ViewData = new ViewDataDictionary<User>(ViewData, _context.Users.FirstOrDefault(p=>p.Id== UserId))
};
}
Jquery
$(function () {
var placeholderElement = $('#user_placeholder');
var ids = $(".useridinfo").attr("id");
$('tr[data-toggle="ajax-admin"]').click(function (userId) {
var url = $(this).data('url');
$.ajax({
type: "GET",
url: url,
// data: JSON.stringify({ "UserId": ids }),
data: ids,
success: function () {
placeholderElement.load("/AdminPage?handler=UserInfo_AdminPartial");
}
});
console.log(ids)
});});
Partial view, currently pretty empty
@model Data.Account.User
@{
}
<div id="user_partial" class="ceva">
<form asp-page-handler="UserInfo_AdminPartial"></form>
<h5>test</h5>
<h6>@Model.Id</h6>
</div>
Using this: ViewData = new ViewDataDictionary<User>(ViewData, new User())
works, but it creates a new user with the captured Id. I want to send the already existing user with that id to the partial view but string UserId
is always null. So the id is sent but i don't know how to capture it.. What can i do ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
处理程序名称为
userInfo_adminpartial
,因此更改data-url =“@url.page(“/adminpage”,“ _USERINFO_ADMINPARTIAL”)
“@url.page(“/adminpage”,“ userInfo_adminpartial”)” 。下面的整个工作演示:
PageModel:
The handler name is
UserInfo_AdminPartial
, so changedata-url="@Url.Page("/AdminPage", "_UserInfo_AdminPartial")"
todata-url="@Url.Page("/AdminPage", "UserInfo_AdminPartial")"
.Whole working demo below:
PageModel: