@ViewContext.RouteData.GetRequiredString("action")
@ViewContext.RouteData.GetRequiredString("controller")
должен содержать текущий контроллер и действие, которое вы можете использовать.Вы также можете извлечь другие параметры маршрута, такие как:
@ViewContext.RouteData.Values["id"]
Таким образом, эта информация может быть отправлена в действие контроллера, которое отправит электронное письмо:
@using (Html.BeginForm(
"Send",
"Email",
new {
currentAction = ViewContext.RouteData.GetRequiredString("action"),
currentController = ViewContext.RouteData.GetRequiredString("controller")
},
FormMethod.Post)
)
{
<div>
@Html.LabelFor(x => x.Name)
@Html.EditorFor(x => x.Name)
</div>
<div>
@Html.LabelFor(x => x.Email)
@Html.EditorFor(x => x.Email)
</div>
<input type="submit" value="Send email!" />
}
И действие, которое будетотправьте электронное письмо:
public ActionResult Send(string name, string email, string currentAction, string currentController)
{
// TODO: based on the value of the current action and controller send
// the email
...
}