将常量值和变量(输入)文本从视图传递到控制器

Posted

技术标签:

【中文标题】将常量值和变量(输入)文本从视图传递到控制器【英文标题】:Pass constant value and variable (input) text from View to Controller 【发布时间】:2012-07-12 20:07:36 【问题描述】:

我对 ASP.NET MVC 还很陌生,并且仍然习惯于其中的一些概念。 我知道要将 View 中文本框的值传递回 Controller,我可以使用 html.BeginForm 并将文本框的名称与 Controller Action 中的相应参数相同。

这是我的情况:我有 2 个按钮。我希望他们在控制器中调用相同的操作。我希望他们都传递文本框的值(即“searchText”)。 但是,我希望其中一个按钮为参数 isQuickJump 传递“false”,而我希望另一个按钮为参数 isQuickJump 传递“true”。

这是我的观点:

@using (Html.BeginForm("SearchResults", "Search", FormMethod.Get))  
<div id="logo" class="centered">
    <a href="SearchResults">
        <img  src="../../Content/themes/base/images/Search.jpg" />
    </a>
</div>

<div id="searchBox" class="centered">
    @Html.TextBox("searchText", null, new  @class = "searchTextBox" )
</div>

<div id="buttons" class="centered">
    <input type="submit" id="searchButton" value="Search" class="inputBtn"  />
    @Html.ActionLink("Quick Jump", "SearchResults", "Search", new  isQuickJump = true , new  @class = "btn" )
</div>

控制器:

public ActionResult SearchResults(string searchText, int? page, int? size, bool? isQuickJump, GridSortOptions sort)
    
        var items = GetSearchGrid(searchText, page, size, sort);

        if (Request.IsAjaxRequest())
            return PartialView("_SearchResultsGrid", items);

        return View(items);
    

关于如何做到这一点的任何建议?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

只需使用 2 个同名不同值的提交按钮:

<div id="buttons" class="centered">
    <button type="submit" name="isQuickJump" value="false">Search</button>
    <button type="submit" name="isQuickJump" value="true">Quick Jump</button>
</div>

根据单击的按钮,isQuickJump 参数的相应值将发送到服务器。由于两者都是提交按钮,它们还将所有其他输入字段数据提交到服务器(您用作第二个按钮的锚不是这种情况)。

【讨论】:

美丽。完美运行。感谢您的快速回复! 很高兴我能帮上忙。如果您没有其他问题并且此答案帮助您解决了您遇到的问题,您可以考虑通过单击旁边的勾号将 iot 标记为答案:meta.stackexchange.com/questions/5234/… 奇怪的是,它告诉我“您可以在 5 分钟内接受答案。”是否总是让我等待指定的时间才能接受答案?

以上是关于将常量值和变量(输入)文本从视图传递到控制器的主要内容,如果未能解决你的问题,请参考以下文章

将输入值从控制器传递到 MVC 中的视图

将变量从视图传递到视图 codeigniter

在 Laravel 5.1 中通过 AJAX 将用户输入数据从视图传递到控制器

iOS MVC - 如何将数据从模型传递到控制器?

将变量从页面视图控制器传递到另一个

将局部变量从控制器传递到视图