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。

有两种方法可以解决您的问题

  • 转换局部视图,然后加载它们 通过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
    }