我想要做的是如此简单,我仍然在尝试使用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? }
答案 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);
}
}