ASP.NET MVC4 HtmlHelper输出额外的不需要的标记

时间:2016-03-30 12:40:58

标签: asp.net-mvc html-helper

所以基本上,我看到';'突然出现。我不知道它来自哪里,也没有明显的来源。

我在这个测试网站上没有javascript或css。

我的模特:(不重要)

public class RegisterAccountViewModel
    {        
        public long? Id { get; set; }
        [Required]
        public string FirstName { get; set; }
        [Required]
        public string LastName { get; set; }
        [Required]
        public string Email { get; set; }
        [Required]
        public string PhoneNumber { get; set; }
        [Required]
        public string AccountType { get; set; }
        public string OrganizationName { get; set; }
    }

视图(Test.cshtml):

@model RegisterAccountViewModel
@{Layout = null;}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Test</title>
</head>
<body>
<div>
    <input type="text" placeholder="FirstName"/>
    <br/>
    @Html.TextBoxFor(m => m.LastName, new {placeholder = "Last Name" });
</div>
</body>
</html>

控制器

public class LoginController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public ActionResult Test()
        {
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Register(RegisterAccountViewModel model)
        {
            return null;
        }
    }

image

是什么给出了?

为了确保它不是我的任何问题,我使用默认模板创建了一个新的mvc网站并添加了一个文本框;结果与下图中的结果相同

enter image description here

2 个答案:

答案 0 :(得分:4)

删除 LastName TextBoxFor 末尾的分号;

@Html.TextBoxFor(m => m.LastName, new {placeholder = "Last Name" }); //<-- remove this semicolon

注意: - 在razor(MVC)语法;中只有在@{}内编写一些C#代码时才需要; }在html助手扩展方法的末尾。

答案 1 :(得分:2)

您必须删除&#39;;&#39;在您视图的结尾处:

@Html.TextBoxFor(m => m.LastName, new {placeholder = "Last Name" })