class = 'editable' を持つ各 (空の) DIV (アルファベット文字で始まる一意の ID) のコンテンツを設定する次の jQuery があります。HTML の文字列を返すために、GET メソッドで MVC4 API コントローラーを使用しています。
何らかの理由で、以下の loadStuff 関数は、返されたコンテンツの前後に Web ページで見ることができる引用符を出力しています。これはすべての DIV で発生し、文字列を返す API コントローラー メソッドでは絶対に返されません。
$(document).ready(function () {
$('.editable').each(function () {
var curId = this.id.replace('content', '');
loadStuff(curId, this.id);
})
});
function loadStuff(curId, targetId) {
$('#' + targetId).load('api/briefingItem/' + curId);
}
ただし、loadStuff 関数を以下のコードに置き換えて .appendTo を使用すると、引用符が表示されません。
function loadStuff(curId, targetId) {
$.getJSON("api/briefingItem/" + curId,
function (data) {
$(data).appendTo('#' + targetId);
})
}
これは、単純な文字列を返すにはやり過ぎのようであり、ドキュメントが示唆しています。この異常な動作を説明できる人はいますか?
API コントローラー
// GET api/BriefingItem/5
public string Get(int id)
{
string newVal = string.Empty;
switch (id)
{
case 12:
newVal = @"<p>this is some example text that you can edit inside the <strong>tinymce editor</strong>.</p><p>nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. nam sed lectus quam, ut sagittis tellus. quisque dignissim mauris a augue rutrum tempor. donec vitae purus nec massa vestibulum ornare sit amet id tellus. nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. aliquam molestie volutpat dapibus. nunc interdum viverra sodales. morbi laoreet pulvinar gravida. quisque ut turpis sagittis nunc accumsan vehicula. duis elementum congue ultrices. cras faucibus feugiat arcu quis lacinia. in hac habitasse platea dictumst. pellentesque fermentum magna sit amet tellus varius ullamcorper. vestibulum at urna augue, eget varius neque. fusce facilisis venenatis dapibus. integer non sem at arcu euismod tempor nec sed nisl. morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros.</p>";
break;
case 13:
newVal = @"<p>look up $(content).load() jquery method and the callback function.</p>";
break;
default:
newVal = @"<h3>click to enter content.</h3>";
break;
}
return newVal;
}