1

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);
        }
...
4

2 に答える 2

-1

「MVC スタイル」ではなく、「webforms スタイル」で何かをしようとしているようです。

MVC のデフォルト テンプレートは、URL で ID を指定できるように設定されています。たとえば、/Home/User/1 で ID=1 が返されます。「webforms」の URL は、/users.aspx?id=1 のようになります。

だから私の推測では、次のような ActionMethod を作成する必要があるだけです

public ViewResult User(int id)
{
    return View(userRepository.Find(id)); // example where you're using EntityFramework
}

メソッドの実際の名前は、コースによって異なる場合があります。しかし重要なことは、ID パラメータが MVC フレームワークによって自動的に設定されることです。

于 2013-05-23T11:41:34.497 に答える