2012-02-01 9 views
0

asp.net MVC3では、ソースWebページのクエリパラメータを使用してGETを実行する方法を入力できますか?私は隠された入力を使用しないことを好みます。ASP.NET MVC3入力は、クエリパラメータを使用してGETを実行します

更新。たとえば、私のページにはクエリパラメータid = 54が含まれています。入力にGETが発生すると、宛先コントローラ/アクションでこのクエリパラメータを受け取る必要があります。

// could i change it for include query parameters of source page? 
using (Html.BeginForm("Action", "Controller", FormMethod.Get)) 
{ 
    <input type="submit" value="Text" onclick="submit"/> 
} 
+0

、私はそれを理解していません。 ASP.NET MVC 3でフォームを投稿するときに隠れた入力の代わりを実装したいですか? – Rhapsody

+0

これは可能ではないようです:http://stackoverflow.com/questions/1116019/submitting-a-get-form-with-query-string-params-and-hidden-params-disappear 誰かが確認できますか? – fravelgue

答えて

1

あなたの問題を解決するには、まさにこれです:質問を言い換えてください

Html.BeginForm("Action", "Controller", new { id = 54 }, FormMethod.Get) 
+0

フォームの動作中のクエリパラメータは無視されます。 http://www.w3.org/TR/html401/interact/forms.html#form-data-processing – fravelgue

+0

私はこれがうまくいくと思っています。私はあなたのリンクにない理由を見つけませんでした。答えのフォームは、/ Controller/Action?id = 54のような場所に送信されます。どうしたの? –

+0

HTTP GETを使用し、フォームの動作中にクエリパラメータを使用すると、ブラウザはクエリパラメータを送信しません。あなたはシオマネキを使用してテストすることができます。 \t \t \t <フォームアクション= "のhttp://?localhostのID = 1" メソッド= "GET"> \t \t \tの \t \t \t – fravelgue

0

使用この:ControllerContext.HttpContext.Request.UrlReferrer.ToString(); それは助けにはなりません場合は、以前のURLパラメータを使用して、現在のURLを編集したい場合は、グローバルフィルター(Global.asaxのでそれを登録)

protected void Application_Start() 
{ 
    GlobalFilters.Filters.Add(new PreviousUrlSavingFilter()) 
} 

public class PreviousUrlSavingFilter: ActionFilterAttribute 
{ 
    protected override OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     filterContext.HttpContext.Session["PreviousRouteData"] = filterContext.RouteData; 
    } 

    // use this property to access previous page route data 
    public static RouteData PreviousUrlData 
    { 
     return (RouteData) HttpContext.Current.Session["PreviousRouteData"]; 
    } 
} 

を使用することができ、 https://stackoverflow.com/a/4222584/571203

+0

あなたの答えはThxです。良いトリック;-)しかし、私は別のオプションがあると思う、私はあなたの答えに隠された入力を好むと思う。一部のプロキシはurlreferrerを削除することができ、私は余分な隠された入力を避けたいだけです。 – fravelgue

+0

回答が更新されました。 –

+0

URLを変更して、クエリパラメータを含むGETを入力することはできますか? – fravelgue

0

私はこの種の一時データを保存するためにTempDataを使用します.tempataは、保存されたメソッドを使用しない限り、読み込まれた後に1つのroutetripに保存されます。

関連する問題