[英].NET MVC: How in <a @Url.Action()> to send an Object In an Object?
I want to easily submit a model for data filtering.我想轻松提交一个model进行数据过滤。
For quick sorting, I wrote tags by which the data will be sorted...为了快速排序,我写了数据排序的标签......
When I click on the link, the address bar becomes like this -> "&FilterData=Project.Web.Models.FilterData"当我点击链接时,地址栏变成这样 -> "&FilterData=Project.Web.Models.FilterData"
localhost/User?PageNum=1&SortOrder=NameAsc&FilterData=Project.Web.Models.FilterData
<a href="@Url.Action("Index", "User", new FilterRequest(filter, sort, pagination))"> First Name </a>
Here is the code for understanding)这里是理解的代码)
FilterRequest.cs过滤请求.cs
public class FilterRequest
{
public int PageNumber { get; set; } = 1;
public SortType SortOrder { get; set; } = SortType.None;
public FilterData FilterData { get; set; }
}
FilterData.cs过滤数据.cs
public class FilterData
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
}
How can You see the FilterData field is an object. Its fields are not displayed?怎么看到FilterData字段是一个object,它的字段没有显示出来?
And this is how I receive data into the controller)这就是我将数据接收到控制器的方式)
UserController.cs用户控制器.cs
public class UserController : Controller
{
public IActionResult Index(FilterRequest request)
{
}
}
Please help me figure it out.. Display data from nested object:)请帮我弄清楚..显示来自嵌套object的数据:)
When I click on the link, the address bar becomes like this -> "&FilterData=Project.Web.Models.FilterData"
当我点击链接时,地址栏变成这样 -> "&FilterData=Project.Web.Models.FilterData"
How in to send an Object In an Object?
如何在 Object 中发送 Object?
To achieve your requirement of passing complex data to controller action via <a>
tag, and make model binding work well, you can try following code snippet.为了实现通过
<a>
标签将复杂数据传递给 controller 操作的要求,并使 model 绑定正常工作,您可以尝试以下代码片段。
@{
ViewData["Title"] = "Home Page";
var pagination = 1;
var sort = SortType.NameAsc;
var filter = new FilterData { FirstName = "fn", MiddleName = "mn", LastName = "ln" };
var parms = new Dictionary<string, string>
{
{ "PageNumber", pagination.ToString() },
{ "SortOrder", SortType.NameAsc.ToString() },
{ "FilterData.FirstName",filter.FirstName},
{ "FilterData.MiddleName",filter.MiddleName},
{ "FilterData.LastName",filter.LastName}
};
}
<a asp-controller="Home" asp-action="Index" asp-all-route-data="parms">First Name</a>
The QueryString may look like this:查询字符串可能如下所示:
?PageNumber=1&SortOrder=NameAsc&FilterData.FirstName=fn&FilterData.MiddleName=mn&FilterData.LastName=ln
Test Result测试结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.