[英]How to assign a query string in a controller?
使用MVC 3 Asp.Net,我想在控制器中的任何方法上添加默認查詢字符串。
使用以下代碼,在第QueryString.Add()行出現錯誤:
Collection is read only.
知道如何解決它,或者您知道如何將查詢字符串追加到控制器方法的更好方法嗎? 請發表代碼示例感謝。
public class HomeController : Controller
{
protected override void Initialize(RequestContext requestContext)
{
// Add the User's ID if is not present in the request
string user = requestContext.HttpContext.Request.QueryString["UniqueStudentReference"];
if (user == null)
{
string userId = Various.GetGivenNameUser();
System.Web.HttpContext.Current.Request.QueryString.Add("UniqueStudentReference", userId);
}
base.Initialize(requestContext);
}
...
重定向呢?
protected override void Initialize(RequestContext requestContext)
{
// Add the User's ID if is not present in the request
string user = requestContext.HttpContext.Request.QueryString["UniqueStudentReference"];
if (user == null)
{
string userId = Various.GetGivenNameUser();
requestContext.HttpContext.Response.RedirectToRoute(new { UniqueStudentReference = userId });
}
base.Initialize(requestContext);
}
只需添加查詢字符串參數“ UniqueStudentReference”,即可重定向到同一路由
看起來您正在嘗試以“ Webforms樣式”而不是“ MVC樣式”進行操作。
設置了MVC的默認模板,以便您可以在URL中指定ID,例如/ Home / User / 1將為您提供ID = 1。 “ webforms” URL可能類似於/users.aspx?id=1。
所以我的猜測是,您只需要創建一個像
public ViewResult User(int id)
{
return View(userRepository.Find(id)); // example where you're using EntityFramework
}
該方法的實際名稱可能與其他方法有所不同。 但是重要的是ID參數將由MVC框架自動設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.