ASP.NET MVC AJAX传值

UpdateTargetId是直接更新控件的innerHTML的,看jquery.unobtrusive-ajax.js源代码就知道。

有2种办法解决

1)修改js代码jquery.unobtrusive-ajax.js,找到asyncOnSuccess函数,按照下面新增

    function asyncOnSuccess(element, data, contentType) {
        var mode;

        if (contentType.indexOf("application/x-javascript") !== -1) {  // jQuery already executes JavaScript for us
            return;
        }

        mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
        $(element.getAttribute("data-ajax-update")).each(function (i, update) {
            var top;

            switch (mode) {
                case "BEFORE":
                    top = update.firstChild;
                    $("<div />").html(data).contents().each(function () {
                        update.insertBefore(this, top);
                    });
                    break;
                case "AFTER":
                    $("<div />").html(data).contents().each(function () {
                        update.appendChild(this);
                    });
                    break;
                default:
                    if (update.tagName == 'INPUT' || update.tagName == 'TEXTAREA' || update.tagName=='SELECT') update.value = data;////////判断是否输入控件,是就设置值
                    else $(update).html(data)
                    break;
            }
        });
    }

2,不要放输入控件,放输入控件的容器,然后服务器端返回html代码

<div id="dvEmail"></div>

UpdateTargetId= "dvEmail"

public ActionResult getemail(string username) { return Content("<input id='emails' name='emails' type='text' value='"+ username+"' />"); }

 

建议第一种方法,因为如果你还有验证的话,第二种还得自己给validate增加验证规则

帮助到你可以点击采纳支持下吗,谢谢~~

以上是一个界面的传值,从第一个表单获取到值之后,返回给id=emails的文本框,但是出现一个问题是文本框只能用value接收值,

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632