我是MVC的新手。我希望能够在单击视图按钮时更改按钮/ divs /文本框文本。我在网上找到了一个教程,向我展示了以下内容,但是当我点击按钮时,我将被重定向到另一个页面。该页面显示的是文本。我没有触及默认的Global.aspx
查看
@using (Ajax.BeginForm("ExamineTextBox", new AjaxOptions { UpdateTargetId = "result" }))
{
@Html.TextBox("textBox1")
<input type="submit" value="Button" />
<span id="result" />
}
控制器
public string ExamineTextBox(string textBox1)
{
if (textBox1 != "Initial Data")
{
return "This text is MVC different from before!";
}
return String.Empty;
}
答案 0 :(得分:1)
确保您已将jquery.unobtrusive-ajax.js
脚本包含在您的网页中。
如果您使用默认捆绑包(请查看~/App_Start/BundleConfig.cs
- 您会看到定义了jqueryval
捆绑包,它会合并并缩小所有~/Scripts/jquery.unobtrusive*
和"~/Scripts/jquery.validate*"
个文件:
@Scripts.Render("~/bundles/jqueryval")
如果不使用捆绑包,则可以单独包含此脚本:
<script type="text/javascript" src="~/scripts/jquery.unobtrusive-ajax.js"></script>
Ajax.*
帮助程序需要此脚本才能运行。因为它的名字表明它不引人注目地AJAX化它们。这取决于jQuery,所以请确保你也包含了这个。
附注:在ASP.NET控制器中,操作应该返回ActionResults,而不是字符串:
public ActionResult ExamineTextBox(string textBox1)
{
if (textBox1 != "Initial Data")
{
return Content("This text is MVC different from before!");
}
return Content(String.Empty);
}
以下是完整视图代码的外观:
@{
Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
</head>
<body>
@using (Ajax.BeginForm("ExamineTextBox", new AjaxOptions { UpdateTargetId = "result" }))
{
@Html.TextBox("textBox1", "Initial Data")
<input type="submit" value="Button" />
<span id="result" />
}
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
</body>
</html>
和控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult ExamineTextBox(string textBox1)
{
if (textBox1 != "Initial Data")
{
return Content("This text is MVC different from before!");
}
return Content(String.Empty);
}
}