繁体   English   中英

将html.dropdownlist的当前值传递给Actionlink?

[英]Pass html.dropdownlistfor current value to Actionlink?

是否可以将@Html.DropDownListFor当前值传递给操作链接? 我想通过Create Action将模板值传递给Sample控制器。 下面的代码不起作用,因为@Model.SurveyTemplate不返回任何值。 是否需要JavaScript才能检索? 请指导我。

下拉列表:

@Html.LabelFor(model => model.Survey_Template, "Survey Template")
                @Html.DropDownListFor(model => model.Survey_Template, new SelectList(
                  new List<Object>{
                       new { value = "Style1" , text = "Style1"  },
                       new { value = "Style2" , text = "Style2" },
                       new { value = "Style3" , text = "Style3"}
                    },
                  "value",
                  "text",
            0))

ActionLink的:

@Html.ActionLink("_", "Create", "Sample",
            new { template = @Model.Survey_Template },
            new { @id = "popup-link", @class = "classname2" })

您必须使用JavaScript进行此操作,仅在服务器端可以识别razor语法 这意味着@Model.Survey_Template将在用户请求页面时呈现,并具有默认值。

如果选择使用JavaScript进行操作,请记住,您需要保存基本URL并根据所选内容向其附加参数。

这些步骤将帮助您实现所需的结果:

  1. 在您的下拉菜单上附加一个change事件。
  2. 获取选定的value并构造新的URL
  3. 替换操作( <a .. /> )的网址( href

注意:我没有编写代码,因为我希望您超越自己。


我认为您尝试实现的是GET form

@using(Html.BeginForm("Create", "Sample", FormMethod.GET)){
    @Html.LabelFor(model => model.Survey_Template, "Survey Template")
    @Html.DropDownListFor(model => model.Survey_Template, new SelectList(
        new List<Object>{
           new { value = "Style1" , text = "Style1"  },
           new { value = "Style2" , text = "Style2" },
           new { value = "Style3" , text = "Style3"}
        },
        "value",
        "text",
    0))

    <input type="submit" value="_" class="classname2" id="popup-link" />
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM