0
在下面的代碼中,我在我的控制器中構建了一個字符串。在這個字符串中,我使用單引號字符。我需要在渲染之前保護這個角色。首先,我嘗試類似L'affaire但它不起作用(因爲引號字符已在我的幫手中使用,請參閱下文)。我成功與L &#3 9; affaire(轉義字符單引號,沒有空格),但也許有更好的方式來進行?轉義單引號字符
在我的控制,我準備像這樣的字符串:
var builderAnchor = new TagBuilder("a");
builderAnchor.MergeAttribute("href", "#");
builderAnchor.InnerHtml = "Annuler";
var builderText = new StringBuilder();
builderText.Append("L'affaire " + affaire.IdAffaire + " a été supprimée. ");
builderText.Append(builderAnchor);
sessionWrapper.Notification = new HtmlString(builderText.ToString());
接下來,我已經從一個觀點叫助手這樣的:
public static IHtmlString ShowNotification(this HtmlHelper helper)
{
//...
returnedValue = "yellowNotification('" + helper.Encode(sessionWrapper.Notification) + "')";
return new HtmlString(returnedValue);
}
最後,所有的這些東西產生HTML如下:
yellowNotification('L'affaire 12345 a été supprimée');
無論如何感謝。
我把這段代碼放在一個動作控制器中,因爲它是一個刪除操作,其中的事件被刪除並且生成通知。此通知將在下一個視圖顯示時顯示。這與Gmail的情況相同:您可以在Gmail中刪除郵件,並且在刪除之後,通知會顯示在頁面的頂部。你明白我的意思嗎?我想我必須在我的刪除操作控制器中管理這種東西... – Bronzato 2011-05-07 14:08:08
@Bronzato我明白你的意思,但處理HTML不是控制器的責任。他的職責是刪除該項目,並向視圖發送可能包含此項目標識的視圖模型。這個視圖的責任是格式化和顯示通知(也許通過使用HTML助手或其他)。 – 2011-05-07 14:11:20
你是絕對正確的。我以這種方式重構我的控制器和視圖。非常感謝您的幫助。 – Bronzato 2011-05-07 15:11:25