从URL获取参数并将其放入输入控件的简单方法?

时间:2011-11-15 19:27:11

标签: c# asp.net-mvc-3 url parameters input

我正在制作一个邀请系统,用户在注册网站时可以指定一个用户进行评审。

现有用户还可以发送邀请。这位朋友会收到一个链接:

http://www.foo.com/account/register?referal=sandyUser216

如何获取该值sandyUser216并将其作为文本输入框内的值?

我正在使用C#和MVC3。

2 个答案:

答案 0 :(得分:1)

检查Request.QueryString

<input type="text" value="@Request.QueryString["referal"]" />

或者将其放在Model属性中,而不是将其放在视图中。

答案 1 :(得分:1)

作为ASP.NET MVC应用程序中的始终,您首先要编写一个代表视图中包含的信息的视图模型:

public class RegisterViewModel
{
    [Required]
    public string Referal { get; set; }
}

然后你编写控制器动作分别显示注册表并处理它:

public ActionResult Register(RegisterViewModel model)
{
    return View(model);
}

[HttpPost]
[ActionName("Register")]
public ActionResult ProcessRegistration(RegisterViewModel model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }
    // TODO: perform the registration
    return RedirectToAction("success");
}

最后你写了相应的强类型视图:

@model RegisterViewModel
@using (Html.BeginForm())
{
    @Html.LabelFor(x => x.Referal)
    @Html.EditorFor(x => x.Referal)
    @Html.ValidationMessageFor(x => x.Referal)
    <button type="submit">Register</button>
}

现在剩下的只是导航到/account/register?referal=sandyUser216

你已经完成了整个MVC模式。如果你跳过这3个字母中的任何一个,这意味着你正在错误地进行ASP.NET MVC。