Question hidden one of the attribute

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
Hi there, could you tell me how to hidden one of the attribute in cshtml, so it doesn't show up on inspect element

ex :
before : <span id="1" data-customeID="2">text</span>
after : <span id="1">text</span>

Thank you
 

Skydiver

Well-known member
Joined
Apr 6, 2019
Messages
644
Location
Virginia Beach, VA
Programming Experience
10+
I don't understand why this is a C# question, or why it is even under VS.NET General Discussion. Is this for WebForms? MVC? Or is this just a vanilla HTML question?
 

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
I don't understand why this is a C# question, or why it is even under VS.NET General Discussion. Is this for WebForms? MVC? Or is this just a vanilla HTML question?
This question about asp.net mvc project, and i'am using html for client side,
this first time to me asking a question at online forum,
sorry for my bad english
 

Skydiver

Well-known member
Joined
Apr 6, 2019
Messages
644
Location
Virginia Beach, VA
Programming Experience
10+
I see. Hopefully one of the admins will move this topic under ASP.NET MVC to make it clearer for future readers.

Anyway, why is the attribute data-customeID in the CSHTML in the first place?
Is there something that client side that needs it? If it is needed client side, then what will happen to your client side JavaScript if it can't find that attribute?

If it only needed server side, why can't the service side code just use the id attribute?

Anyway, just doing a brain dump of what comes to mind about how I would deal with this issue if I were in your shoes:
  • Use my own custom RazorViewEngine where my renderer will strip away the data-customeID attributes.
  • Just encrypt the value in data-customeID so that it is opaque to the user. The can see it but doesn't make sense to them readily.
 

Sheepings

Senior Programmer
Joined
Sep 5, 2018
Messages
652
Location
UK
Programming Experience
10+
You can't do that. If there is something secret which the rendering browser engine is not meant to render, then you should not be including it in your model. Simple as that. If such values need to be secret, then they should be stored in your database or on a server side code file instead. If we could all hide certain elements from the DOM, none of us would be browsing the internet any more, due to security reasons.
 

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
I see. Hopefully one of the admins will move this topic under ASP.NET MVC to make it clearer for future readers.

Anyway, why is the attribute data-customeID in the CSHTML in the first place?
Is there something that client side that needs it? If it is needed client side, then what will happen to your client side JavaScript if it can't find that attribute?

If it only needed server side, why can't the service side code just use the id attribute?

Anyway, just doing a brain dump of what comes to mind about how I would deal with this issue if I were in your shoes:
  • Use my own custom RazorViewEngine where my renderer will strip away the data-customeID attributes.
  • Just encrypt the value in data-customeID so that it is opaque to the user. The can see it but doesn't make sense to them readily.
I'll try to search about RazorViewEngine to solve my issue for the first, thank you for the solution
 

Sheepings

Senior Programmer
Joined
Sep 5, 2018
Messages
652
Location
UK
Programming Experience
10+
What was posted by Skydiver is not the solution, its a technique to disguise the problem. As I already told you, if you have values being rendered to the client side, then you need to change your model to undo that. Prevention is the solution.

Let me put it this way. Why do you have values being shown to the DOM if they are not meant to be there?
 

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
You can't do that. If there is something secret which the rendering browser engine is not meant to render, then you should not be including it in your model. Simple as that. If such values need to be secret, then they should be stored in your database or on a server side code file instead. If we could all hide certain elements from the DOM, none of us would be browsing the internet any more, due to security reasons.
thank you for the explanation before, but for this section "If we could all hide certain elements from the DOM, none of us would be browsing the internet any more, due to security reasons. " I don't understant what you mean
 

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
What was posted by Skydiver is not the solution, its a technique to disguise the problem. As I already told you, if you have values being rendered to the client side, then you need to change your model to undo that. Prevention is the solution.

Let me put it this way. Why do you have values being shown to the DOM if they are not meant to be there?
we need this value as parameter to using in another controller
 

Skydiver

Well-known member
Joined
Apr 6, 2019
Messages
644
Location
Virginia Beach, VA
Programming Experience
10+
So you mean to tell me the controller actually goes and parses the .CSHTML of the view? That is a broken implementation. That is beyond broken. That is a complete misuse of the MVC pattern. You need to pass that information around in the model, not in the view.
 

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
So you mean to tell me the controller actually goes and parses the .CSHTML of the view? That is a broken implementation. That is beyond broken. That is a complete misuse of the MVC pattern. You need to pass that information around in the model, not in the view.
yeah i knew that we have to pass information / data to Model, but that information we got from view.cshtml (data-customeID)
 

Sheepings

Senior Programmer
Joined
Sep 5, 2018
Messages
652
Location
UK
Programming Experience
10+
Then your model as a whole is broken and needs to be rewritten. Completely rewritten.
 

LasG

Member
Joined
Nov 14, 2019
Messages
7
Programming Experience
Beginner
Then your model as a whole is broken and needs to be rewritten. Completely rewritten.
we using model to access database, after we got the data from database, we parse it to the controller and return it to the view.
maybe you can give some of good example, so i can finish my issue.

Thank you
 

Sheepings

Senior Programmer
Joined
Sep 5, 2018
Messages
652
Location
UK
Programming Experience
10+
maybe you can give some of good example, so i can finish my issue.
Are you going to pay me for this work?

As of yet, you haven't shown no code to show how you did what you did, and maybe if you did, somebody might be willing to give you some pointers.
 
Top Bottom