是的,非常笨重。其實你不需要絕對的網址爲你的JavaScript。它可以與相關網址合作。例如:
@Html.Hidden("rt", Url.Content("~/"))
現在是否使用隱藏字段是好事還是壞事就是,雖然不知道你的情況,並正是你正在嘗試在JavaScript做更多細節的話。但讓我們考慮一個非常常見的情況。你想AJAX化一個表單。在這種情況下,你可以使用HTML傭工在視圖中生成表格,然後:
$(function() {
$('#myform').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
// TODO: do something with the results
}
});
return false;
});
});
查看如何,我們不再需要任何硬編碼的網址或隱藏字段脫穎而出的JavaScript。
或者讓我們考慮另一種情況。你想AJAX化一個錨點。一樣。您可以使用Html.ActionLink
生成你的錨,然後:
$(function() {
$('#mylink').click(function() {
$.get(this.href, function(result) {
// TODO: do something with the results
});
return false;
});
});
或者另一種情形。你有一些div容器,你想在點擊它的時候發送一個AJAX請求給一些控制器動作。在這種情況下,你可以使用HTML5數據 - *屬性上的div:
<div id="mydiv" data-url="@Url.Action("Foo", "Home")">Some contents</div>
然後:
$(function() {
$('#mydiv').click(function() {
$.get($(this).data('url'), function(result) {
// TODO: do something with the results
});
return false;
});
});
OK,現在你看,你不再需要的隱藏字段。總有可能做得更好。
感謝Darin的回覆。儘管我試圖消除隱藏的領域。在頁面上注入隱藏字段是唯一的方法? – coding4fun
@ user127954,不,你不需要隱藏字段。有更好的方法。這將取決於您在客戶端嘗試做什麼。 –
非常多我只是在我的JavaScript的基地網址使用它,所以當它改變我不必改變我的JavaScript(不想硬代碼網址)。 – coding4fun