2015-11-02 3 views
5

Url.Actionで複数のパラメータを送信しようとしています。@ Url.Actionに「amp;」を追加コントローラーでヌルを作成するパラメーターの間?

$(this).load("/APQuotes/LightStoneRequest?registrationNumber=TE5TGP&vinNumber=VINTEST44889856"); 

enter image description here

あなたが通過し、VIN番号が、私のコントローラでのヌルがある見ることができるように次のように実行時にそれが見えます

$('#dialog').dialog({ 
    autoOpen: false, 
    width: 850, 
    height: 420, 
    resizable: false, 
    title: 'Vehicle details', 
    modal: true, 
    open: function (event, ui) { 
    $(this).load("@Url.Action("LightStoneRequest", new { registrationNumber = Model.VehicleRegistration, vinNumber = Model.vVinNumber })"); 
    }, 
     buttons: { 
      "Close": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 

ここは私のモーダルです。

public partial class LightStoneRequest 
    { 
     public LightStoneRequest() 
     { 
      this.LightStoneDataFields = new HashSet<LightStoneDataField>(); 
     } 

     public int LightStoneRequestId { get; set; } 
     public string RegistrationNumber { get; set; } 
     public string VinNumber { get; set; } 

     public virtual ICollection<LightStoneDataField> LightStoneDataFields { get; set; } 
    } 

アンプを取り外す場合。それは動作しますが、URL.Actionはamp;を追加します。

+0

このコードは正常に動作するはずです。あなたはまったく同じコードで奇妙な振る舞いをしていると確信していますか? – Shyju

+0

@Shyju何も変更していない、質問領域に過去をコピーし、証拠をスクリーンショットした。 – Pomster

+1

ルアンが与えた答えはあなたのために働くはずです。 – Shyju

答えて

6

Url.Actionは問題ありません。使用方法です。

あなたは@を使用しています。これは、(X)HTMLページのサーバー側コードの結果をインライン展開するために使用されます。 (X)HTMLページでエンティティを正しくエンコードし、&&amp;に変換する必要があります。これは正確な正しい動作です。つまり、テキストや属性のいずれかにインライン化されるはずです(例:<a href="@...">などに使用しています)。

ただし、エンコードされた値ではなく、生の値をインライン化しようとしています.HTMLを生成しようとしていないため、生のテキストを出力しています。 Html.Rawの場合:

@Html.Raw(Url.Action("Test", new { arg1 = "Hi!", arg2 = "there." })) 
+0

ニース、ありがとう – Mahmoud

関連する問題