在@ url.action中使用变量控制器和操作

时间:2015-07-24 05:27:31

标签: jquery asp.net-mvc-4

任何人都知道如何在'@ Url.Action(动作,控制器)中使用varibale?EmpId ='+ EmpId +'& SubModuleId ='+ SubModuleId;

<uses-permission android:name="android.permission.INTERNET"/>    
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

1 个答案:

答案 0 :(得分:2)

actioncontroller是javascript变量,而@Url.Action()是在发送到视图之前在服务器上解析的剃刀代码。这些变量尚不存在(不在范围内),因此您会收到错误。

一种选择是使用

var url = '/' + controller + '/' + action + '?EmpId=' + EmpId + '&SubModuleId=' + SubModuleId;

然而,更好的解决方案是使用class="CreateEditView"在您的元素中呈现一个data-val属性 - 比如data-url="@Url.Action("yourAction", "yourController")",然后使用var url = $(this).data('url');

访问它

旁注。在.load()方法中,您也可以将其用作

$('#' + view + '').load($(this).data('url'), { EmpId: EmpId, SubModuleId: SubModuleId });

但请注意,这种用法(将参数添加为对象)意味着.load()函数将进行POST而不是GET