我不确定我是否有意义,也许有更简单的方法。
我正在构建一个基于Bootstrap模型的Web应用程序,我想要的是显示一个模型来对我的数据库进行CRUD操作。
例如,我将有这样的模型:
public class Author
{
public int id { get; set; }
public string Name { get; set; }
}
public class Book
{
public int id { get; set; }
public string Name { get; set; }
}
我想要的是制作一个部分视图,它将显示一个对话框(模态)以向我的应用添加新作者,与书籍相同,以及我的应用将拥有的'n'类,我想渲染这些部分我需要的地方。所以我可以从我页面的任何视图添加作者。
那部分没问题,现在我遇到了一些'麻烦',因为当我在我的数据库中进行ajax调用以保存我的作者时,我面对的是我已经有一个#Name字段,这是我为我呈现的字段当我用jQuery调用我的字段时,现在预订模态:$('#Name').val()
它将获取第一个#name。
这很容易解决我将创建#AuthorName和#BookName。
现在我害怕如果我的名字系统没有,我的申请将不会稳定。
那么有没有办法建立名称系统?
我不知道该怎么做,但我想写这样的id:
@Html.TextBoxFor(u => u.Id, new { @id = "@MyDialogs.Authors.Add.Name" })
将返回如下内容:dialogs-authors-add-namefield
这可能还是我太懒了?
答案 0 :(得分:0)
你可以做类似的事情,但我认为它没有多大意义 - 它很难维护。您必须创建这个名称的外部列表,这些名称不会比您更好地命名错误。
相反,请考虑重写您的javascript以使其更加“封闭”。而不是像$('#Name')
那样使用全局搜索,而是将其范围限定在局部视图中。
例如,如果您的部分视图看起来像这样:
<form>
<input type='text' id='Name' name='Name' />
// ... other stuff ...
<input id='add-book' type='button' value='Add' />
</form>
然后你的javascript看起来像
$('#add-book').click(function () {
var name = $(this).closest('form').find('#name').val();
// ... do something with the name ...
});
这样,表单上的其他内容无关紧要,如果您有名称冲突并不重要,它可以在任何地方使用 。