【问题标题】:C# property name change effects ID in HTMLC# 属性名称更改影响 HTML 中的 ID
【发布时间】:2018-01-07 06:18:28
【问题描述】:

c#代码:

public class Person{
    public string Name { get; set; }
    public age int { get; set; }
}

生成#Person_Name id的cshtml代码

@Html.DropDownListFor(m => m.Person.Name)

javascript代码:

$('#Person_Name').on("change", function () {
//Do something  
}

如果我将 Person 类属性名称从 Name 更改为 FullName。接下来就是修改cshtml代码为:

    @Html.DropDownListFor(m => m.Person.FullName)

我知道您可以手动进入并更改 Jquery 代码,但是如果进行了此更改并且进行更改的人不知道 jquery,则会导致错误。有没有办法通过某种形式的通知或日志记录来防止这种情况发生?而不仅仅是记住需要更改 jquery。

【问题讨论】:

  • 看不到您的代码时很难提供帮助。
  • “它不会提醒我我的 JavaScript 现在针对的是不存在的 id。” 如果您在浏览器中打开了开发人员的工具并且您正在寻找在“控制台”选项卡上,您将看到您的错误。尝试使用未找到的元素将导致类似于 Unable to find property Xyz on undefined. 的错误

标签: javascript c# asp.net-mvc


【解决方案1】:

您确实可以选择使用:

@Html.IdFor(x => x.Person.FullName)

或者

@Html.NameFor(x => x.Person.FullName)

这确实依赖于在页面中包含少量脚本,但是对于 id 的作用,这主要是调用 .js 资源中的函数,从我的角度来看,我发现这些函数更适合重用。

除非您选择编译 MVC 视图,否则您可能仍然不会收到所有问题的警报,如果您打开视图,您可能会收到警告。您如何设置项目来编译 MVC 视图将取决于项目的类型,但快速的 Google 应该会对此有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-28
    • 2017-04-16
    • 1970-01-01
    • 2012-01-18
    • 2017-06-24
    • 2010-09-23
    • 2023-03-02
    • 1970-01-01
    相关资源
    最近更新 更多