C# NETMVC。通过Get(表单)发送数据并在标签中返回成功?(如何将数据发送和返回到同一视图)

C# NETMVC。通过Get(表单)发送数据并在标签中返回成功?(如何将数据发送和返回到同一视图),c#,asp.net,asp.net-mvc,model-view-controller,C#,Asp.net,Asp.net Mvc,Model View Controller,我正在努力学习.NETMVC是如何工作的。我一直在尝试制作一种字谜检查器,但在此之前,我正在进行输入,并通过GET(form)发送到控制器,并希望检查一个单词是否与另一个单词相等(例如word1==word1)。如果这是真的,我想将“success”作为一个字符串发送回视图,并写入标签中。 所以我有一个问题。首先,我知道如何通过get发送数据,到目前为止,我检查了一个词是否等于某个词,如果这是真的,那么我重定向到了索引。 我不知道如何将“成功”返回到同一个视图(如果可能的话,不使用ajax),并

我正在努力学习.NETMVC是如何工作的。我一直在尝试制作一种字谜检查器,但在此之前,我正在进行输入,并通过GET(form)发送到控制器,并希望检查一个单词是否与另一个单词相等(例如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>
}
@{
ViewBag.Title=“CheckAnagram”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
方格字
@使用(Html.BeginForm(“CheckAnagram”,“Anagrams”,FormMethod.Get,new{@class=“navbar form navbar left”}))
{
@TextBox(“word”,null,new{@class=“form control”,@placeholder=“Check for anagrams”})
提交
}

我知道我可以发送一个模型来查看,但当我重新加载页面时,它会再次发送,因此我不知道如何使其正常工作,通常的方法是什么?

您可以使用
TempData
将模型数据传递给重定向请求。您可以传递字符串、int、Guid等简单类型。如果要通过TempData传递复杂类型对象,可以将对象序列化为字符串并传递该字符串。在您的场景中,您可以执行以下操作:

{
 if ( word == "word1")
 { 
  TempData["myresult"] = "Word match";
  //return HttpNotFound();
  return RedirectToAction("Index");
 }
 return View();
}
您的
索引
方法如下所示:

public ActionResult Index()
{
    if (TempData["myresult"] !=null)
    {
        var myresult= TempData["myresult"];
        ViewBag.myresult=myresult;
    }
    return View();
}

索引
视图中,您只需检索要显示的
视图包
值即可。

谢谢!但我对viewbag感到好奇,因为从我所了解的情况来看,它不是最好的使用方式,通过viewbag发送东西没有智能,每个人似乎都说它不是最好的方式。你觉得怎么样?@sgcata嗯,这完全取决于你的要求。我更喜欢使用
ViewBag
向视图发送消息,但如果我必须发送要使用的实际具体数据,那么我更喜欢绑定到数据的模型。您必须查找
ViewModel
以及它们在MVC中的使用方式。您还可以使用
TempData