我正在努力学习.net mvc是如何工作的。我一直在尝试制作一种字形检查器,但在此之前,我输入了一个GET (表单)并通过GET(表单)发送到控制器,并希望检查一个单词是否与另一个单词(例如word1 == word1)相等。如果这是真的,我想把'success‘作为一个字符串发送回视图,然后写在标签中。所以我有个问题。首先,我知道如何通过get发送数据,到目前为止,我检查了一个单词是否与某个东西相等,如果是真的,则重定向到索引。我不知道如何将“成功”返回到同一个视图(如果可能,没有ajax ),并将其写在一个标签中,以便我输入一个文本,如果与我的文本相等,那么它将在控制器下显示成功:
{
if ( word == "word1")
{
//return HttpNotFound();
return RedirectToAction("Index");
}
return View();
}视图:
@{
ViewBag.Title = "CheckAnagram";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>CheckAnagram</h2>
@using (Html.BeginForm("CheckAnagram", "Anagrams", FormMethod.Get, new { @class = "navbar-form navbar-left" }))
{
<div class="form-group">
@Html.TextBox("word", null, new { @class = "form-control", @placeholder = "Check for anagrams" })
</div>
<button type="submit" class="btn btn-default">Submit</button>
}我知道我可以发送一个模型来查看,但是当我重新加载页面时,它会再次发送它,所以我不能理解如何让它正常工作,正常的方法是什么?
发布于 2020-03-09 01:16:11
您可以使用TempData将模型数据传递给重定向请求。你可以传递简单的类型,如string,int,Guid等等。如果你想通过TempData传递一个复杂类型的对象,你可以将你的对象序列化为一个字符串并传递。在您的场景中,您可以这样做:
{
if ( word == "word1")
{
TempData["myresult"] = "Word match";
//return HttpNotFound();
return RedirectToAction("Index");
}
return View();
}您的Index方法将如下所示:
public ActionResult Index()
{
if (TempData["myresult"] !=null)
{
var myresult= TempData["myresult"];
ViewBag.myresult=myresult;
}
return View();
}在Index视图中,您可以简单地检索要显示的ViewBag值。
https://stackoverflow.com/questions/60589217
复制相似问题