当通过";检索Id值时,Javascript返回false;container.find();

当通过";检索Id值时,Javascript返回false;container.find();,javascript,jquery,asp.net,asp.net-mvc,razor,Javascript,Jquery,Asp.net,Asp.net Mvc,Razor,我的MVC应用程序包含一个简单的textarea元素(用户配置文件描述),可以由登录的用户编辑,并由同一视图中的模型表示 视图中的JS函数由“保存”按钮激活,该按钮通过模型获取textarea值和用户id。这些值被发送到更新数据库的控制器 但是,我无法理解为什么我的代码不返回我需要调用回控制器的Id和字符串值 var id = container.find('div[data-rel]'); 返回 "false" 及 返回“未定义” 我在这里发布这篇文章,因为我在这上面花了很多时间,无法看到

我的MVC应用程序包含一个简单的textarea元素(用户配置文件描述),可以由登录的用户编辑,并由同一视图中的模型表示

视图中的JS函数由“保存”按钮激活,该按钮通过模型获取textarea值和用户id。这些值被发送到更新数据库的控制器

但是,我无法理解为什么我的代码不返回我需要调用回控制器的Id和字符串值

var id = container.find('div[data-rel]');
返回

"false"

返回“未定义”

我在这里发布这篇文章,因为我在这上面花了很多时间,无法看到我的代码有什么问题。我将非常感谢一两个指针

视图:

@model MyProj.Models.ApplicationUser
//用户id
//编辑完成后单击“保存”按钮
脚本:

<script>
    $(function () {
      $("#saveButton").click(function () {
        var container = $(this).closest('.row');
        var id = container.find('div[data-rel]');
        var descriptionForm = container.find('.textarea');
        var text = descriptionForm.value;

        var url = "/Profile/EditDescription?id=" + id + "&s=" + text;
        $.post(url, null, function (data) {
    });
<script>

$(函数(){
$(“#保存按钮”)。单击(函数(){
var container=$(this).closest('.row');
var id=container.find('div[data rel]');
var descriptionForm=container.find('.textarea');
var text=descriptionForm.value;
var url=“/Profile/EditDescription?id=“+id+”&s=“+text;
$.post(url、null、函数(数据){
});
控制器:

    public void EditDescription(string id, string s)
    {

        var manager = new UserManager<ApplicationUser>(
            new UserStore<ApplicationUser>(new ApplicationDbContext()));

        var user = manager.Users.FirstOrDefault(u => u.Id == id);

        user.ProfileDescription = s;

        manager.UpdateAsync(user);

    }
public void EditDescription(字符串id,字符串s)
{
var-manager=newusermanager(
新的用户存储(新的ApplicationDbContext());
var user=manager.Users.FirstOrDefault(u=>u.Id==Id);
user.ProfileDescription=s;
manager.UpdateAsync(用户);
}

首先,您必须使用
[data rel]
获取所需的元素,即
div
,然后使用
data()
获取数据属性值。要检索文本区域值,请使用
val()
而不是

  $("#saveButton").click(function () {
    var container = $(this).closest('.row').find('div[data-rel]');
    var id= container.data('rel');
    var descriptionForm = container.find('.textarea');
    var text = descriptionForm.val();
    var url = "/Profile/EditDescription?id=" + id + "&s=" + text;
});

首先,您必须使用
[data rel]
获取所需的元素,即
div
,然后使用
data()
获取数据属性值。要检索文本区域值,请使用
val()
而不是

  $("#saveButton").click(function () {
    var container = $(this).closest('.row').find('div[data-rel]');
    var id= container.data('rel');
    var descriptionForm = container.find('.textarea');
    var text = descriptionForm.val();
    var url = "/Profile/EditDescription?id=" + id + "&s=" + text;
});

var text=descriptionForm.value;
应该是
var text=descriptionForm.val();
因为
descriptionForm
是jQuery对象。您有多少个ID为
saveButton
的按钮?您好!只有一个。
var text=descriptionForm.value;
应该是
var text=descriptionForm.val()
as
descriptionForm
是jQuery对象。您有多少个ID为
saveButton
的按钮?您好!只有一个。超级!现在正常工作。非常感谢!超级!现在正常工作。非常感谢!
  $("#saveButton").click(function () {
    var container = $(this).closest('.row').find('div[data-rel]');
    var id= container.data('rel');
    var descriptionForm = container.find('.textarea');
    var text = descriptionForm.val();
    var url = "/Profile/EditDescription?id=" + id + "&s=" + text;
});