Asp.net mvc 如何在asp.net-core w/o javascript中使用单选按钮过滤部分视图?
我希望我的用户能够对页面内容进行排序,从而根据他们单击的内容显示局部视图。使用单选按钮是一种明显的情况,因为一次只能选择一个单选按钮 但是,我不知道如何仅在单选按钮上调用操作方法 这是我当前没有单选按钮的实现Asp.net mvc 如何在asp.net-core w/o javascript中使用单选按钮过滤部分视图?,asp.net-mvc,twitter-bootstrap,forms,radio-button,asp.net-core-2.0,Asp.net Mvc,Twitter Bootstrap,Forms,Radio Button,Asp.net Core 2.0,我希望我的用户能够对页面内容进行排序,从而根据他们单击的内容显示局部视图。使用单选按钮是一种明显的情况,因为一次只能选择一个单选按钮 但是,我不知道如何仅在单选按钮上调用操作方法 这是我当前没有单选按钮的实现 <a asp-action="Bookings" asp-controller="User" class="btn btn-primary" asp-route-sortOrder="All">Alle lektioner</a> <a asp-action=
<a asp-action="Bookings" asp-controller="User" class="btn btn-primary" asp-route-sortOrder="All">Alle lektioner</a>
<a asp-action="Bookings" asp-controller="User" class="btn btn-primary" asp-route-sortOrder="Upcoming">Kommende lektioner</a>
<a asp-action="Bookings" asp-controller="User" class="btn btn-primary" asp-route-sortOrder="History">Historik</a>
Alle lektioner
科门德莱克托纳酒店
史提克
使用引导单选按钮这是我的模板,但我无法在我的控制器中使这些点击成为actionmethod。我曾考虑过在输入上创建onclick,但我不确定这是否可能,而且我不知道如何在onclick中asp路由排序器
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio"id="option1" autocomplete="off" checked> All
</label>
<label class="btn btn-primary">
<input type="radio" autocomplete="off"> Upcoming
</label>
<label class="btn btn-primary">
<input type="radio" autocomplete="off"> History
</label>
</div>
全部的
即将到来的
历史
如果可能的话,我宁愿不使用javascript。有两种方法可以解决您的问题
通过有条件地添加类名,只突出显示指示当前路由(sortOrder)的链接可能更容易。请参阅一些如何执行此操作的示例,但要回答您的问题,请从视图模型开始,以表示您在视图中想要的内容
public class BookingsVM
{
public string SortOrder { get; set; } // to bind to the radio buttons
public IEnumerable<Booking> Bookings { get; set; } // the collection of records to display in the view
}
那景色呢
@model BookingsVM
....
@using(Html.BeginForm("Bookings", "User", FormMethod.Get))
{
<label>
@Html.RadioButtonFor(m => m.SortOrder, "All", new { id = "" })
<span>Alle lektioner</span>
</label>
<label>
@Html.RadioButtonFor(m => m.SortOrder, "Upcoming", new { id = "" })
<span>Kommende lektioner</span>
</label>
// .... ditto for History
<input type="submit value="Sort" />
}
@foreach(var booking in Model.Bookings)
{
// .... display results here
}
@model BookingsVM
....
@使用(Html.BeginForm(“Bookings”、“User”、FormMethod.Get))
{
@Html.RadioButtonOn(m=>m.SortOrder,“全部”,新的{id=”“})
Alle lektioner
@RadioButtonOn(m=>m.SortOrder,“即将推出”,新的{id=”“})
科门德莱克托纳酒店
//……历史也是如此
添加一个提交按钮和单选按钮,并将所有这些按钮包装在一个表单标记中。在处理表单提交的操作方法中,根据单选按钮选择获取过滤后的数据子集(这是已提交表单数据的一部分),并将其返回到相应的视图中,在该视图中它将被渲染以添加到@Shyju comment中,您需要为单选按钮提供一个名称
属性,该值可以提交给控制器(最好通过绑定到模型属性)但是,您当前使用链接的实现有什么问题吗?我将尝试一下,谢谢。我只是想,从编程角度来说,使用单选按钮更有意义。如果您使用绑定到属性的单选按钮(使用@Html.RadioButtonFor()
然后,如果属性值与某个按钮值匹配,则会选择该属性(否则不会选择)。但您也可以根据当前路由高亮显示链接,以指示当前正在筛选的内容
@model BookingsVM
....
@using(Html.BeginForm("Bookings", "User", FormMethod.Get))
{
<label>
@Html.RadioButtonFor(m => m.SortOrder, "All", new { id = "" })
<span>Alle lektioner</span>
</label>
<label>
@Html.RadioButtonFor(m => m.SortOrder, "Upcoming", new { id = "" })
<span>Kommende lektioner</span>
</label>
// .... ditto for History
<input type="submit value="Sort" />
}
@foreach(var booking in Model.Bookings)
{
// .... display results here
}