【问题标题】:How can i pass a radio button value , to my Url.Action如何将单选按钮值传递给我的 Url.Action
【发布时间】:2014-05-09 00:17:28
【问题描述】:

我在我的 Asp.net MVC Web 应用程序中的视图中有以下内容:-

@Html.TextBoxFor(model => model.Technology2.Tag, new { data_autocomplete_source = Url.Action("AutoComplete2", "Switch") })

它将调用 AutoComplete2 操作方法,并将 TextBoxFor 的当前值传递给它。我的操作方法如下:-

[CheckUserPermissions(Action = "Edit", Model = "Switch")]
        public ActionResult AutoComplete2(string term)
        {
            var tech = repository.AllFindTechnolog(term).OrderBy(p => p.Tag).Select(a => new { label = a.Tag }).ToList();
            return Json(tech, JsonRequestBehavior.AllowGet);}

现在提出了一个新要求,即应该有两个单选按钮(标签和序列号)来确定用户是否需要使用序列号的标签号进行自动完成。我当前的字段将传递标签号。那么我如何强制 Url.Action 基于单选按钮选择引用不同的操作方法,或者传递单选按钮值并将其传递给相同的操作方法。

谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 razor


    【解决方案1】:

    我会使用 HiddenField 来存储单选按钮的值,并通过 URL 操作链接传递隐藏字段值。

    这不是 razor 语法,但它显然仍然有效,您可以根据需要进行转换。

     @Html.HiddenFor(x => x.Hidden, new { id = "hf" });
    
    <input type="radio" name="rb" value="1" onclick="change()"/>
    <input type="radio" name="rb" value="2" onclick="change()"/> 
    <input type="radio" name="rb" value="2" onclick="change()"/>
    

    在 JQuery 中捕获 Change 事件并设置 Hidden 字段值。

    function change() {
        $('input[name="rb"]').click(function () {           
            $("#hf").val(this.value);
        });
    }    
    

    而且你应该可以这样通过

    @Html.TextBoxFor(model => model.LastNamex,
    new { data_autocomplete_source = Url.Action("AutoComplete2", "Switch", 
    new { id = Model.Hidden }) })
    

    【讨论】:

    • 但在我当前的方法中,"$('input[name="rb"]').click(function () {" 永远不会触发,因为用户在输入时不会点击任何按钮自动完成搜索词...
    • 好的,如果用户没有检查 rb,我不确定是什么事件,但无论如何,无论您选择 rb 的什么事件,我都会将该值存储在会话中。让 tb 调用 1 操作方法,并在那里使用 session 来确定要执行的查找。
    【解决方案2】:

    在里面使用条件运算符来选择 URL。

    @Html.TextBoxFor(model => model.Technology2.Tag, new { data_autocomplete_source = $("#radio_1").prop("checked")?Url.Action("AutoComplete2", "Switch"): otherURL })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-30
      • 2014-03-26
      • 1970-01-01
      • 2012-09-11
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多