I have a C# Property CategoryID, I want to set it’s value in Javascript.
I am trying to set the value CategoryID like below:
var sPath = window.location.pathname;
var catId = null;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
if (sPage == 'xyz.aspx')
{
<%=CommonUtility.CategoryID=4%>;
}
else if(sPage == 'zxy.aspx')
{
<%=CommonUtility.CategoryID=5%>;
}
But by this method I always get the value of CategoryID= 5(which is in else block) .
Please suggest me how can get the Property value based on condition.
You can’t set a C# property from a client-side (js). You may use ajax to do some work, but you simply can’t manipulate server-side code.
edit:
if you still wonder how it’s possible you get a value, see Mike’s explanation of that fact. But the truth remains. You can’t. It’s impossible. If you want to know the longer explanation, see how asp.net actually works, it’s lifecycle etc. Simple way of putting it would be like this:
A user sends a request to the server using his browser. The server receives it, creates a requested page and instantiates needed classes etc. Then it’s gets parsed and sent to the client as html (and other resources of course, like images, css…). The instantiated page class CAN’T be accessed and modified afterwards by the client, because it’s already flushed by the server. Every request creates a new instance. There’s no way of interacting js with c# anyway. Can you imagine what it would be like, if you could use some js to modify C# on a remote server? It doesn’t make sense at all.