Not sure what you mean by not using MVC but using Razor. If you're using Razor then you're using MVC as that is what Razor effectively is built on. You have a controller that selects the view to load and the Razor engine merges the model (if any) with the view and sends it to the browser. That's the gist of MVC.
If you instead mean you aren't using MVC controllers to handle the edit then that is fine anyway since it would be a pain. What scripting library are you using for the front end (e.g. Angular, React, Vue)? If you aren't using any then that would be the first step. Update your view to use a front end library to make this pretty trivial.
Irrelevant, you'll need to write some javascript (or better yet typescript that gets compiled to javascript) to handle the user clicking the edit button. When they do you "swap out" the normal table static controls with your editor. If you want this inline then that would involve replacing each cell with the corresponding edit control. Alternatively you could pop up a form inside the row (taking up all columns). This is where the front end libraries will really help out. They can do this with just simple attributes and templating in most cases. You can do this manually using jQuery but it is a lot more effort. Once the edit is done you'll post the changes back to the server and process the results. This is normally done by having your "save" button call a javascript function that collects up the edited data and sends it back to the server via an API call. You need to implement the API on the server to handle receiving the data, validating it and saving it to your database. Generally you return a response to the client and the client is responsible for either showing errors or switching the user back to "read only" mode. You don't need to post back the entire page or even refresh it.
All this is highly dependent upon your front end library you're using. All of them have examples of how to do this pretty common activity. Refer to the documentation for your library. MVC cannot easily do this without posting back the entire page which is probably not what you want.