1

在asp.net mvc的,如果我有像下面的模型:防止模型中的屬性顯示在查詢字符串

public class MyModel 
{ 
public string Name {get; set;} 
public string MySecretProperty {get { return "123"; } } 
} 

在我的控制器:

MyModel model = new MyModel(); 
.... 
RedirectToAction("home", model); 

生成的URL會:

home?Name=xyz&MySecretPropert=123 

有沒有辦法隱藏一個屬性顯示在查詢字符串使用屬性?我仍然希望在視圖中使用該屬性,並希望它保留爲模型的一部分,但不希望將其顯示在查詢字符串中。

我能想到的唯一選擇是創建另一個類,並且不在其中包含祕密屬性,然後使用該類進行重定向,然後通過使用自動映射器或類似方法映射屬性來重新構建完整模型。

有沒有什麼優雅的方式來做到這一點?一個屬性可以完美地堅持像[HideDuringRedirect]這樣的屬性。

回答

1

您可以重定向到動作以匿名路由對象爲,

return RedirectToAction("home", new {model.Name }); 

這將不包括在查詢字符串的祕密財產。 MyModel仍然可以在重定向操作中使用。

希望這有助於。

相關問題