如何将数据发送到asp.net控制器以便它可以返回视图?

时间:2016-05-15 23:10:40

标签: c# asp.net asp.net-mvc html5

我想要做的是如此简单,我仍然在尝试使用c#和MVC应用程序来学习ASP.NET,但我只是很难通过一个简单的例子来完成,然后我可以从中成长,这里是怎么回事:我有一个简单的html5表单,其方法是GET,类型是文本,我基本上想要将文本提交到我的mvc控制器,一旦我的控制器得到它,我希望它输出那个字符串'工作'通过HTML5,我该怎么做?

摘要:字符串'工作' - > HTML格式 - > c#controller - > html(查看?)

这是我的观点所得到的' (Search.cshtml)

FlowRouter.withReplaceState(fn)

好的,到目前为止一切都很好,如果我输入'工作'除非我添加更多代码,否则不会发生任何事情,这里是c#(HomeController.cs):

<form action="Home/Search" method="get">
<input type="text" name="q" />
<input type="submit" value="Search" />
好吧所以这就是我感到困惑的地方,我的字符串是否经过并存储在&#39; q&#39 ;?如果是这样,我如何使用HTML5输出类似

的内容
 public ActionResult Search(string q)
    {

        return this.View(q?); // so what exactly is View(q)? what is view returning?        }

3 个答案:

答案 0 :(得分:0)

Search.cshtml

<form action="/Home/Search" method="get">
    <input type="text" name="q" />
    <input type="submit" value="Search" />
</form>

<p class='current-query'>@Model</p>

HomeController.cs

public ActionResult Search(string q)
{
    return View((object)q); // return the model to the view (a string)
}

答案 1 :(得分:0)

在您的控制器中,您正在错误地调用View(...)方法。 View(...)方法希望您传递的字符串参数成为您尝试渲染的剃刀视图的路径。

q变量从控制器传递到要渲染的视图的快速而简单的方法是使用ViewBag

如果你有一个名为 /Views/Search.cshtml 的剃须刀视图,你会这样做:

public class MyController : Controller
{
  public ActionResult Search(string q)
  {
    ViewBag.Query = q;
    return View("~/Views/Search.cshtml");
  }
}

然后在 /Views/Search.cshtml 中使用它:

<p>@ViewBag.Query</p>

答案 2 :(得分:0)

如果您使用的是asp.net mvc,请按照这样的mvc模式进行..

查看

@using (@Html.BeginForm("Search","Home",FormMethod.Post))
{
 <b>Name : </b>
 @Html.TextBox("searchTerm", null, new { @id = "txtSearch" })
 <input type="submit" value="Search" />
}

控制器

[HttpPost]
    public ActionResult Search(string searchTerm)
    {
        return View(searchTerm);
    }
}