使用 ASP.NET MVC 的 jQuery 选择器出现问题

Posted

技术标签:

【中文标题】使用 ASP.NET MVC 的 jQuery 选择器出现问题【英文标题】:Trouble with jQuery selector using ASP.NET MVC 【发布时间】:2010-09-27 11:24:14 【问题描述】:

我是 ASP.Net MVC 和 jQuery 的新手,我想做的是创建一个表单,根据 rockbandid 是否为空 guid,添加新的 RockBand 或更新现有的 RockBand。我认为现在是开始使用 jQuery 的好时机。所以第一步是制作一个乐队列表,并在它旁边放一个编辑链接。如果用户单击编辑链接,我想更改输入框和隐藏字段的值。下面的代码是第一步,尝试设置输入框的值(暂时使用固定字符串,但最终将是乐队名称)。但是,当我这样做时,我得到了一个需要对象的错误。 (jQuery 包含在 Site.Master 上)

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
    function fillinbandname(thebandname) 
        $('#bandname').val(thebandname);
    
</script>
<ul>
<%foreach (DomainModel.RockBand rockband in ViewData.Model) %>
<% %>
<li><%=rockband.BandName %> <a href='javascript:fillinbandname("somesamplevalue");'>edit</a></li>
<% %></ul>

<%html.BeginForm("MakeOrUpdateRockBand", "Bands", FormMethod.Post); %>
<input type="text" id="bandname" name="bandname" maxlength="30" />
<input type="hidden" id="bandid" name="bandid" value="00000000-0000-0000-0000-000000000000" />
<input type="submit" value="Add New Band" />
<%Html.EndForm(); %>

</asp:Content>

感觉就像我非常接近......但缺少一些基本的东西。

【问题讨论】:

【参考方案1】:

您的代码很好。您对 JQuery 的包含可能是错误的。顺便说一句,谷歌正在为 jQuery 和其他 API 提供免费托管。您可以尝试通过以下方式替换您的 jQuery 包含:

&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"&gt;&lt;/script&gt;

但无论如何...检查它是否指向正确的文件。

【讨论】:

就是这样......我从脚本文件夹中拖放文件真是太傻了。谢谢!【参考方案2】:

我将您的 HTML 和 JavaScript 复制到一个示例文件中;它对我有用。我唯一建议的是将您的锚点更改为以下内容:

<a href='#' onclick='fillinbandname("somesamplevalue"); return false;'>edit</a>

另外,你不一定需要一个函数来做到这一点,你可以直接在 onclick 事件中使用 jQuery。不过,这取决于您的判断。

请确保您的 HTML 按预期生成,并确保您为每个乐队名称和乐队 ID 生成唯一 ID。ID 在 HTML 文档中不能出现多次。 p>

【讨论】:

这也有帮助,因为我可以内联它并使其更具可读性。谢谢! 我相信他计划在编辑时将唯一ID放入隐藏的bandid字段的值中。

以上是关于使用 ASP.NET MVC 的 jQuery 选择器出现问题的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 5 MVC 6 中的单选按钮标记帮助程序

ASP.Net MVC在AspNet Mvc使用JQuery AutoComplete组件

ASP.NET MVC 单选按钮更新布尔值

ASP.NET MVC 多选下拉菜单

Razor 单选按钮不起作用(ASP.NET MVC)

如何在 Asp.NET MVC 中使用复选框创建多选下拉菜单