我正在尝试在asp.net中创建搜索器。我很绿。我正在尝试在视图中创建并将其发送到控制器变量,该变量具有在搜索器中编写的文本。那一刻,我有点像->
我的问题是,在何处以及如何创建和发送变量并将其数据写在搜索器中?

布局

form class="navbar-form navbar-left" role="search">
            @using (Html.BeginForm("Index", "Searcher", FormMethod.Post, new { phrase = "abc" }))
            {
                <div class="form-group">
                    <input type="text" class="form-control" placeholder="Wpisz frazę...">
                </div>
                <button type="submit" class="btn btn-default">@Html.ActionLink("Szukaj", "Index", "Searcher")</button>
            }
        </form>


控制者

 public class SearcherController : ApplicationController
{
    [HttpGet]
    public ActionResult Index(string message)
    {
        ViewBag.phrase = message;
        getCurrentUser();
        return View();
    }

}


视图

@{
ViewBag.Title = "Index";
 }

<h2>Index</h2>
<ul>
    <li>@ViewBag.message</li>
</ul>

最佳答案

您缺少MVC的关键部分->模型。

首先创建一个:

public class SearchModel
{
    public string Criteria { get; set; }
}


然后,让我们更新“布局”视图(不知道为什么在表单中有表单吗?):

@model SearchModel

        @using (Html.BeginForm("Index", "Searcher", FormMethod.Post, new { phrase = "abc" }))
        {
            <div class="form-group">
                @Html.EditorFor(m => m.Criteria)
            </div>
            <button type="submit" class="btn btn-default">@Html.ActionLink("Szukaj", "Index", "Searcher")</button>
        }


然后,为该视图服务的操作:

[HttpGet]
public ActionResult Index()
{
    return View(new SearchModel());
}


那么您的发布方法将是:

[HttpPost]
public ActionResult Index(SearchModel model)
{
    ViewBag.phrase = model.Criteria;
    getCurrentUser();
    return View();
}

关于c# - 将词组(变量)从搜索器(从 View )发送到 Controller ,asp.net mvc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30184553/

10-17 01:18