我知道一個可以使用這個功能相對URL與asp.net的MVC 3
@Url.Action("MyInfo", "Home")
避免網址的硬編碼,但我$.ajax
電話是在一個單獨的.js文件。以上是否仍然有效?
據我所知,@Url.Action
只能在Razor文件中使用。但考慮到我們被建議使用非突破性的JS,我不太確定我將如何使用@Url.Action
。
請指教。
我知道一個可以使用這個功能相對URL與asp.net的MVC 3
@Url.Action("MyInfo", "Home")
避免網址的硬編碼,但我$.ajax
電話是在一個單獨的.js文件。以上是否仍然有效?
據我所知,@Url.Action
只能在Razor文件中使用。但考慮到我們被建議使用非突破性的JS,我不太確定我將如何使用@Url.Action
。
請指教。
會上面還是工作?
號
從我所知,@ Url.Action只會剃刀文件
你的知識是正確的內部工作。
但考慮到我們建議使用非強大的JS,我不是 很確定我將如何使用@ Url.Action。
你可以使用HTML5數據 - *屬性,你是悄悄地提高(除非該元素已經是<form>
或在這種情況下,它已經包含URL錨)一些DOM元素:
<div id="foo" data-url="@Url.Action("foo")">Hello</div>
,然後在您的單獨的JavaScript文件中:
$(function() {
$('#foo').click(function() {
var url = $(this).data('url');
// TODO: do something with the url
});
});
爲相對路徑添加函數參數。例如,在您查看:
<script type="text/javascript">
var path = "@Url.Action("ActionName", "ControllerName")";
someAjaxMethod(path)
</script>
,並在外部js文件:
function someAjaxMethod(path)
{
var data = {};
$.ajax(path, data)
}
此示例沒有顯示出好的方法,因爲路徑變量現在是全局的。對本地URL使用一些命名空間或對本地URL使用「data-url」方法會更好一些 – 2015-02-19 08:49:00
我同意這不是最好的答案,我更喜歡@ Darin的方法,但它對於簡單場景仍然有效。 – jrummell 2015-02-19 13:54:17
對不起,但是你回滾我的編輯,對代碼甚至不起作用(語法錯誤)的實際改進?如果可以的話,我會倒下兩次。你可以編寫任何代碼,但不會複製它! – 2015-02-20 07:45:33
如果你已經有一個'form',只需要這樣做:'var url = $('form')。url;'。 – 2013-06-16 04:59:21