Отправить другу функциональность в MVC

На сайте, скорее всего, будет иконка. щелкнув по нему, вы увидите всплывающее окно со следующими ссылками:

  1. название
  2. Эл. адрес

После этого вы сможете заполнить страницу, и электронное письмо будет отправлено на адрес электронной почты, указанный в поле "Электронная почта". Проблема в том, как мне узнать, на какой странице я нахожусь, чтобы я мог поместить ее в сообщение? Спасибо

2 ответа

Решение
@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
    ...
}

Функциональность отправки электронной почты в примере кода ASP.net. Примените этот код и используйте его в своем коде Это будет полезно.

Другие вопросы по тегам