I have a partial view (control) that's used across several view pages, and I need to pass the name of the current view back to the controller - so if there's e.g. validation errors, I can re-draw the original view.
A workaround way to do it would be (in the controller methods)
var viewName = "Details"; // or whatever
ViewData["viewName"] = viewName;
return(View(viewName, customer));
and then in the partial itself, render it as
<input type="hidden" name="viewName"
value="<%=Html.Encode(ViewData["viewName"])%>" />
Question is - is there some property or syntax I can use to retrieve this directly instead of setting it from the controller? I've tried the obvious:
<input type="hidden" name="viewName"
value="<%=Html.Encode(this.Name)%>" />
but this doesn't work. What am I missing here?
Thanks.
See Question&Answers more detail:os