c# - HTML 扩展方法在表单中不起作用

标签 c# html asp.net asp.net-mvc-5

我有以下表格:

@using (Html.BeginForm("Cancel", "Member", FormMethod.Post))
{        
    Html.SubmitButton(); //doesn't work
}
@*@Html.SubmitButton(); //does work*@

扩展方法如下所示:

public static MvcHtmlString SubmitButton(this HtmlHelper helper)
{
    return new MvcHtmlString("<input type = \"submit\" value = \"Cancel\" />");
}

为什么 input 元素 HTML 可以在 using block 外生成,而不能在 using block 内生成?

最佳答案

您缺少前导 @,它告诉 razor 将结果输出到 View 。当您仅使用 Html.SubmitButton(); 时,会执行该方法并返回结果,但不会对其进行任何操作。

你的代码需要

@using (Html.BeginForm("Cancel", "Member", FormMethod.Post))
{        
    @Html.SubmitButton()
}

关于c# - HTML 扩展方法在表单中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49121606/

相关文章:

c# - 如何将 pdf 文件作为附件添加到电子邮件

asp.net - 如何调试中继器控制?

javascript - Ajax 之后单击按钮后禁用按钮 - ASP.NET MVC5

html - 流体布局 - 使用边距顶部百分比时底部的空间

html - 充当复选框时更改标签的背景

javascript - 在 HTML/Javascript 中自动将数字转换为彩条

python - IIS 上的多个 Python Flask 站点

c# - .net 应用程序对象提升为第 2 代

c# - 实现不可变枚举器

c# - 更改文件的属性表