![](/img/trans.png)
[英]how do i do a jquery/ajax refresh of sqldatareader data without page refresh in ASP.NET?
[英]How do I capture the data sent by ajax in asp.net razor page?
我正在嘗試使用我單擊的用戶的數據填充部分視圖。 這是代碼:
<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 ViewDataDictionary<User>(ViewData, new User())
有效,但它使用捕獲的 Id 創建一個新用戶。 我想將具有該 ID 的現有用戶發送到部分視圖,但string UserId
始終為空。 所以發送了 id 但我不知道如何捕獲它.. 我能做什么?
處理程序名稱是UserInfo_AdminPartial
,因此將data-url="@Url.Page("/AdminPage", "_UserInfo_AdminPartial")"
更改為data-url="@Url.Page("/AdminPage", "UserInfo_AdminPartial")"
。
整個工作演示如下:
@page
@model AdminPageModel
<table class="table">
<tbody>
@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")">
<td>@user.Id</td>
</tr>
}
</tbody>
</table>
<div id="user_placeholder"></div>
@section Scripts
{
<script>
$(function () {
var placeholderElement = $('#user_placeholder');
$('tr[data-toggle="ajax-admin"]').click(function () {
var url = $(this).data('url');
var ids = $(this).attr("id");
$.ajax({
type: "GET",
url: url + "&UserId=" + ids,
success: function (res) {
placeholderElement.html(res);
}
});
console.log(ids)
});
})
</script>
}
頁面模型:
public class AdminPageModel : PageModel
{
public List<User> UserList { get; set; }
public void OnGet()
{
UserList = _context.Users.ToList();
}
public PartialViewResult OnGetUserInfo_AdminPartial(string UserId)
{
UserList = _context.Users.ToList();
var user = UserList.Where(a => a.Id == UserId).FirstOrDefault();
return new PartialViewResult
{
ViewName = "_UserInfo_AdminPartial",
ViewData = new ViewDataDictionary<User>(ViewData, user)
//ViewData = new ViewDataDictionary<User>(ViewData, _context.Users.FirstOrDefault(p=>p.Id== UserId))
};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.