如何将单选按钮值传递给我的Url.Action

时间:2014-05-08 13:31:20

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

我在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);}

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

由于

2 个答案:

答案 0 :(得分:0)

我会使用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事件并设置隐藏字段值。

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 }) })

答案 1 :(得分:-1)

使用条件运算符选择URL。

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