繁体   English   中英

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

[英]How do i send data to asp.net controller so that it can return a view?

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

摘要:字符串“工作”-> html表单-> c#控制器-> html(查看?)

这就是我的“视图”(Search.cshtml)

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

好的,到目前为止,如果我输入“ worked”,除非添加更多代码,否则什么都不会发生,这是c#(HomeController.cs):

 public ActionResult Search(string q)
    {

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

好吧,这就是我感到困惑的地方,我的字符串会穿过并存储在“ q”中吗? 如果是这样,我该如何使用HTML5输出类似

<p> q </p> <!-- q = 'worked' -->

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)
}

在您的控制器中,您正在错误地调用View(...)方法。 View(...)方法期望您传递的字符串参数是您要呈现的剃刀视图的路径。

使用ViewBag是将q变量从控制器传递到要呈现的视图的快速简便方法。

如果您有一个名为/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>

如果您使用的是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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM