C# 如何更改隐藏字段的名称属性?

C# 如何更改隐藏字段的名称属性?,c#,asp.net,C#,Asp.net,我在我的aspx页面上有一个隐藏字段,我使用masterpage。 不使用母版页,一切都很好,hiddenfield的name属性也正确 <asp:HiddenField ID="apiversion" ClientIDMode="Static" runat="server" /> 渲染后的结果为html <input type="hidden" name="apiversion" id="apiversion" value="v0.01"> 但如果使用母版,

我在我的aspx页面上有一个隐藏字段,我使用masterpage。 不使用母版页,一切都很好,hiddenfield的name属性也正确

<asp:HiddenField ID="apiversion" ClientIDMode="Static" runat="server" />

渲染后的结果为html

<input type="hidden" name="apiversion" id="apiversion" value="v0.01">

但如果使用母版,则结果html是一样的

<input type="hidden" name="ctl00$ContentPlaceHolder1$apiversion" id="apiversion" value="v0.01">

但我必须使用母版页,并且需要名称属性为“apiversion”,而不是“ctl00$ContentPlaceholder 1$apiversion”


有什么解决办法吗?

我不确定,但我认为这应该行得通。。。在文档准备就绪时更改名称属性

$(document).ready(function(){
    $("#<%=apiversion.ClientID%>").attr("name","apiversion");
});
$(文档).ready(函数(){
$(“#”)attr(“名称”、“apiversion”);
});
或者

var arrayOfNames=[];
var actualName=$("#<%=apiversion.ClientID%>").attr("name");
arrayOfNames=actualName.split('$');

var whatYouActuallyWant=arrayOfNames[2];// This is the name you have without master page.
var arrayOfNames=[];
var actualName=$(“#”)attr(“name”);
arrayOfNames=actualName.split(“$”);
var whatYouActuallyWant=arrayOfNames[2];//这是不带母版页的名称。
考虑以下评论。。在部分回发的情况下,如在更新面板的情况下,添加页面加载功能

function pageLoad(sender,args){
     $("#<%=apiversion.ClientID%>").attr("name","apiversion");
}
函数页面加载(发送方,参数){
$(“#”)attr(“名称”、“apiversion”);
}

你到底为什么要改变这一点?您面临的问题是什么?我调用了一个从请求页面获取值的服务。但在我使用masterpage时,服务无法读取我的隐藏字段。所以我需要按我的意愿更改隐藏字段的名称属性。您的名称和id值相同,为什么不使用id?第三方Web服务正在使用名称值。这不在我的控制范围内。你应该从codebehind收集信息,然后从那里呼叫服务,因为据我所知,没有办法改变这一点,这是出于设计。但是,如果您不需要从codebehind访问字段,您可以直接使用HTML控件,而不使用runat服务器,这样您就可以完全控制它。请记住,如果您试图在发布后从codebehind访问隐藏值,则可能无法工作。谢谢@writeToBhuwan,它工作得很好:)使用javascript对我来说是一个很好的解决方案:)