问这个问题我觉得很可笑,但在这里,我正在尝试制作一个非常简单的 ASP.NET MVC 5 应用程序。我的第一个善良。我想要一个按钮,当单击它时会执行某些操作但不会更改用户的视图或最多返回“电子邮件已提交”消息。
我的问题是我不知道如何将按钮连接到不改变视图(即使用@Html.ActionLink())或提交按钮的“事件”或“动作” 。我找到的每个示例也是提交按钮。
谢谢你的帮助。
编辑
这仍然对我不起作用。我将在下面发布我的代码。我的努力是基于这里所说的和链接的帖子。另外,仅供参考,我可以使用`@Html.ActionLink("link text", "actionname") 使其工作,但它显示为链接,我正在尝试使用“按钮”。
索引.cshtml
@{
ViewBag.Title = "Home Page";
}
<div class="hero-unit">
<h3>Marketing & Communications Project Request Form</h3>
<p>User: <strong>@Context.User.Identity.Name</strong></p>
</div>
<div class="row">
<div class="span4">
@Html.ActionLink("Send Email", "SendEmail") @*this line works*@
<input id="SendEmail" class="btn" type="button" value="SendEmail" /> @*this line does not
</div>
</div>
<script type="text\javascript">
$(function(){
var url = '@Url.Action("SendEmail", "HomeController")';
$("input#SendEmail").on('click', function() {
$.ajax({
url: url
})
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
家庭控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public ActionResult SendEmail()
{
//Code to create and send email here
return View("Index");
}
}
Run Code Online (Sandbox Code Playgroud)
好的,假设您有以下按钮,用 HTML 编写:
<input type="button" id="MyButton" value="Click Me />
Run Code Online (Sandbox Code Playgroud)
您可以使用 jQuery 来连接click事件:
$(function(){
$("input#MyButton").on('click', function(){
// Do what you want.
});
});
Run Code Online (Sandbox Code Playgroud)
如果您使用 HTML 助手,例如HTML.TextBoxFor(),只要您知道input生成的 id ,您就可以使用相同的 jQuery 代码来连接click事件。
编辑:
您可以将该 jQuery 代码放置在视图中,例如
<script type="text/javascript">
$(function(){
$("input#MyButton").on('click', function(){
// Do what you want.
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
通常您会发现脚本代码放置在视图底部附近,但您可以将其放置在您真正喜欢的任何位置。
或者,您可以将该 jQuery 放在单独的 JavaScript (*.js) 文件中。只需确保将以下内容添加到 中的<head>部分_Layout.cshtml:
<script type='text/javascript' src='@Url.Content("~Scripts/YourFile.js")' ></script>
_Layout.cshtml 是在您的项目中使用的主布局文件(假设您在 Visual Studio 中选择了常用的 ASP.NET MVC 项目模板之一)。
编辑:
关于 jQuery 参考,_Layout.cshtml如果尚未引用jQuery,您可以添加它:
<script type='text/javascript' src='@Url.Content("~Scripts/jquery.version.js")' ></script>
只需将文件名替换为您拥有的正确文件名。现在,如果您的 MVC 应用程序使用捆绑,事情就会变得有趣。这有点超出我的知识库,所以最好看看其他关于 MVC 应用程序中的 CSS/JavaScript 捆绑的 SO 问题。
| 归档时间: |
|
| 查看次数: |
31762 次 |
| 最近记录: |