c# - ASP .NET MVC 5 - 如何在 Ajax.ActionLink 中添加表单模型?
问题描述
我正在处理表格分页,每个页面都调用控制器来获取部分数据,然后返回部分视图并将其更新为 HTML 表格。
这是我的控制器的样子:
public ActionResult SearchData(FormModel model, int? page)
{
/*Codes to get data from DB*/
return PartialView("_DataTable", model);
}
表单输入是这样的:
@model Project.ViewModel
@using (Ajax.BeginForm("SearchData", "Player", new AjaxOptions
{ HttpMethod = "GET", UpdateTargetId = "data-table", InsertionMode = InsertionMode.Replace }))
{
@Html.LabelFor(m => m.FormModel.Username)
@Html.TextBoxFor(m => m.FormModel.Username, new { placeholder = "[Username]" })
@*And some more input, all are in FormModel class.*@
}
<div id="data-table">
@Html.Partial("_DataTable")
</div>
我生成页面的方式如下:
for (var pageNum = Model.PlayerList.Pager.StartPage; pageNum <= Model.PlayerList.Pager.EndPage; pageNum++)
{
if (pageNum == Model.PlayerList.Pager.CurrentPage)
{
<td><span>@pageNum</span></td>
}
else
{
<td>
@Ajax.ActionLink(pageNum.ToString(), "SearchData", new {page = pageNum}, new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "data-table"
})
</td>
}
}
我只能传入page
值,是否可以将表单输入包含Model
在内Ajax.ActionLink
?像这样的东西:
new {model = Model.FormModel, page = pageNum}
我尝试了上面的方法,但没有奏效。任何帮助,将不胜感激。
解决方案
你需要像这样添加 FormModel 的属性
new {Username="some username",page = pageNum}
推荐阅读
- selenium - 使用 selenium 比较屏幕截图的问题
- tensorflow - 如何微调预训练的 GAN?
- domain-driven-design - 存储库的 create 方法应该返回什么类型?
- google-sheets - 如果选中 NONE,则突出显示复选框行
- android - 如何从 Jetpack Work Manager 测试工人链中工人之间的依赖关系
- python - CNN 是否应该采用所有用于训练的输入来预测新样本?
- plotly - Plotly Dash 中的桑基图
- vue.js - PWA InjectManifest 工作箱控制台/调试输出突然被禁用(Vue.js/Quasar 框架)
- azure - 删除 API 正常工作时,Azure 队列删除休息 API 返回“无内容”
- html - 在同一行显示 2 个输入