【问题标题】:I want use jQuery to select a list item that will use Razor to bring up a PartialView我想使用 jQuery 选择一个列表项,该列表项将使用 Razor 调出 PartialView
【发布时间】:2015-11-05 14:45:40
【问题描述】:

我已经设置了选项卡列表的值,警报证明了这一点。但是,重新加载 Create Partial 视图我想强制它转到我选择的 PartialView。因此,在我的示例中,我希望用户:

  1. 从生日 ID 列表中选择,
  2. 然后主视图刷新,
  3. 那么屏幕不应该转到列表中的第一个,但我想从保存的值中获取(现在我只想将它插入到列表选项值中。

    @using (Html.BeginForm("Index", "Birthday", FormMethod.Post, new { id     = "frmBirthday", enctype = "multipart/form-data" }))
    {
            <input type="hidden" id="hdnAction" name="Action" />
            @Html.LabelFor(model => model.SelectedBirthdayID, new { @class = "table-label" }) 
            @:&nbsp;
            @Html.DropDownListFor(model => model.SelectedBirthdayID,  Model.BirthdayIDs, "Select...", new { id = "ddlBirthdayID", width = "250px" })  @:&nbsp;
            @:&nbsp; 
            @Html.ActionLink("Create New Birthday Party", "Index", "Birthday")   <br /><br /> 
    
    
            <div id="tabs">
                <ul>
                    <li><a href="#Create">Birthday Create</a></li>
                    <li><a href="#Cards">Cards</a></li>
                    <li><a href="#Gifts">Gifts</a></li>
                    <li><a href="#Guests">Guests</a></li>
                    <li><a href="#Food">Food</a></li>
                </ul>
    
                <div id="Create">
                     @Html.Partial("_Create")
                </div>
    
            <div id="Cards" >
                @Html.Partial("_Cards")
            </div>
    
            <div id="Gifts">
                @Html.Partial("_Gifts")
            </div>
    
            <div id="Guests">
                @Html.Partial("_Guests")
            </div>
    
            <div id="Food">
                @Html.Partial("_Food")
            </div>
    
        </div> 
    

    }

    //jQuery

    $(函数(){ $("#tabs").tabs();

        $('#ddlBirthdayID').change(function () {
            $('#hdnAction').val("ddlchange");
            $('#frmBirthday').submit();
        });
    
        $('#ddlBirthdayID').change(function () {
            $('#tabs').val(3);
            alert($("#tabs").val());
        });
    

【问题讨论】:

  • 以上代码在Index中。

标签: jquery list razor model-view-controller partial-views


【解决方案1】:

您正在尝试混合使用客户端和服务器端技术。交付页面时会呈现部分内容。选择只发生在客户端。

您的选择是:

  • 用不同的部分刷新整个页面(例如,基于一个额外的参数来选择选项)
  • 渲染所有部分并简单地隐藏您不想要的部分,并显示选定的部分或
  • load the partial views using Ajax (e.g. into a fixed panel), whenever the selection changes

例如要隐藏它们,请在所有这些面板上使用一个通用类(最初隐藏它们并让客户端代码在选择更改时显示所需的面板)。

正确的选择取决于您的网页的其他因素,因此需要更多信息才能说出最适合您的方案的选项。

注意:为了提供更好的示例,您还需要显示控制器操作和其他视图的示例

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 2012-05-21
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2022-01-16
    • 2018-01-19
    相关资源
    最近更新 更多