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