Asp.net mvc 4 在ASP.NET中将GET参数传递给ActionLink

Asp.net mvc 4 在ASP.NET中将GET参数传递给ActionLink,asp.net-mvc-4,html.actionlink,Asp.net Mvc 4,Html.actionlink,很抱歉,我是C#和ASP.NET的新手,我看到了很多关于这个问题的帖子,但我没有理解。我试图了解如何通过HTML.ActionLink将GET参数传递给操作: 以下是URL的链接: http://localhost:36896/Movies/SearchIndex?searchString=the 我的CSHTML页面应该如下所示: <input type="Text" id="searchString" name="searchString" /> @Html.ActionLin

很抱歉,我是C#和ASP.NET的新手,我看到了很多关于这个问题的帖子,但我没有理解。我试图了解如何通过HTML.ActionLink将GET参数传递给操作:

以下是URL的链接:

http://localhost:36896/Movies/SearchIndex?searchString=the
我的CSHTML页面应该如下所示:

<input type="Text" id="searchString" name="searchString" />
@Html.ActionLink("Search Existing", "SearchIndex", new { searchString = "the"}) 

@ActionLink(“搜索现有”、“搜索索引”、新的{searchString=“the”})
这个硬编码的参数“the”实际上正在工作,但是如何使用类似于
document.getElementById(“searchString”).value的东西选择id=searchString的输入元素呢


谢谢,

如果服务器上不知道要作为GET参数发送的值,则无法使用Html.ActionLink帮助程序添加该值。您需要使用javascript操作现有链接并附加参数

public ActionResult SearchIndex(string searchString)
        {
           ...
        }
看起来您有一个包含搜索字符串的输入字段,并且希望将在此字段中输入的值发送到服务器。处理此场景的更好方法是使用带有method=“GET”的HTML表单,而不是ActionLink。这样,您就不需要使用任何javascript—它是HTML规范的一部分:

@using (Html.BeginForm("SearchIndex", "Movies", FormMethod.Get))
{
    @Html.EditorFor(x => x.SearchString)
    <button type="submit">Search</button>
}

但是,如果您绝对坚持使用ActionLink,则必须编写javascript,在单击该链接时操纵现有链接的href,以便将值附加到url。这是一种我不推荐的方法,因为HTML规范已经在整个HTML表单中为您提供了此功能。

这使得@HTML.EditorFor引用对象的标题字段,有点随意,但它可以工作

@using (Html.BeginForm ("SearchIndex", "Movies", FormMethod.Get))
{
    @Html.EditorFor( x => x.ElementAt(0).Title)
    <button type="submit">Search</button>
}

谢谢你,这很清楚,让我明白我想要的方式是多么容易,但我有一个疑问,这就是它没有;t无法识别searchString参数,将其下划线为未定义您是指
@Html.EditorFor(x=>x.searchString)
行吗?要使其正常工作,必须将视图强类型化为视图模型a
SearchString
属性。如果您不使用视图模型并希望硬编码HTML(完全不推荐),您可以在表单中使用
。问题是我没有属性searchString是页面上的输入类型,该值在我的对象的一个字段中查找这是如何在页面上清除的(@model IEnumerable)这个字段是title,然后您应该定义一个视图模型,它有两个属性:搜索字符串和电影集合,并使您的视图强类型化到此视图模型。如果您需要在此页面上搜索,那么您的视图模型上必须有一个searchstring属性=>您为视图模型选择了错误的类型。我的对象有一个属性标题,我一直在研究如何在该字段中搜索,将GET参数中的搜索字符串作为searchstring传递
@Html.TextBox("SearchString")
    <button type="submit">Filter</button>
public ActionResult SearchIndex(string searchString)
        {
           ...
        }