在剃刀中将URL参数添加到div

时间:2017-10-29 00:11:25

标签: asp.net-mvc razor

我有这样的剃刀形式

 @using (Html.BeginForm("ResetPassword", "Login", FormMethod.Post, new { enctype = "multipart/form-data" }))
            {
     @Html.ValidationSummary(true, "", new { @class = "text-danger" })

     <div id="email_label" style="font-size:14px;padding:8px;">Email:</div>
     <div class="form-group">
         @Html.EditorFor(x => x.user, new { htmlAttributes = new { @class = "form-control", placeholder = "enter email from url" } })<br />
         @Html.ValidationMessageFor(x => x.user)
      </div>
}

我想将placeholder = "enter email from url"替换为网址中的值。

url:example.com/login?email=hi@example.com&pass=123

现在我在Javascript中这样做,但我想在Razor中这样做。但我似乎无法到达任何地方。

以下是我在Javascript中所做的事情:

let url = new URL(window.location.href);
let searchParams = new URLSearchParams(url.search);
let emailAddress = (searchParams.get('email'));

1 个答案:

答案 0 :(得分:0)

您可以从Request读取查询字符串并使用它

@Html.EditorFor(x => x.user, 
                  new { htmlAttributes = new { @class = "form-control", 
                              placeholder = Request["email"] ?? "Please enter email" } })

这将读取电子邮件查询字符串值(如果它作为占位符值存在),否则字符串“请输入电子邮件”

这只会添加占位符文本,而不是输入的实际值。如果您希望将其设置为输入元素值,则可以在GET操作方法中执行此操作。

public ActionResult ResetPassword(string email)
{
   var vm = new ResetPasswordVm { User  = email };
   return View(vm);
}

并且在渲染输入时辅助方法将使用此值