una tablas tabla recorrer obtener filas editar dinamicas datos con agregar javascript asp.net-mvc-4 iis

javascript - tablas - ¿Cómo hago saber a JS sobre la raíz de la aplicación?



tablas dinamicas html javascript (2)

Tengo algunos javascript que hacen referencia a /jobs/GetIndex en un proyecto MVC. Esto funciona muy bien cuando lo ejecuto localmente porque tengo un Controller llamado JobsController . Cuando lo implemento, implemento la aplicación en una subcarpeta ''Trabajos'', lo que significa que la URL debe convertirse en http://site/jobs/jobs/GetIndex pero va a http://site/jobs/GetIndex , supongo que porque JavaScript no sabe cuál es la ''URL raíz'' y utiliza el sitio como raíz. ¿Cómo puedo hacer que funcione en ambos entornos?



Si simplemente le interesa obtener la url raíz / base del sitio para que pueda agregarla para obtener la otra url que busca, simplemente puede usar / como el primer carácter de su url.

var urlToJobIndex2= "/jobs/GetIndex";

Aquí hay un enfoque alternativo si desea algo más que la raíz de la aplicación (Ej: URL específicas (creadas utilizando métodos auxiliares de Url.RouteUrl como Url.RouteUrl etc.)

Puede usar el método auxiliar Url.Content en su vista de afeitar para generar la url a la base de la aplicación, asignarla a una variable de JavaScript y usarla en su otro código js para construir sus otras urls. Siempre asegúrese de usar el espacio de nombres de JavaScript al hacerlo para evitar posibles problemas con las variables globales de JavaScript.

Si desea obtener la URL de un método de acción específico, puede utilizar los métodos auxiliares Url.Action o Url.RouteUrl .

Entonces, en su vista de afeitar ( archivo de diseño o vista específica ), puede hacer esto.

<script> var myApp = myApp || {}; myApp.Urls = myApp.Urls || {}; myApp.Urls.baseUrl = ''@Url.Content("~")''; myApp.Urls.jobIndexUrl= ''@Url.Action("GetIndex","jobs")''; </script> <script src="~/Scripts/PageSpecificExternalJsFile.js"></script>

Y en su archivo PageSpecificExternalJsFile.js , puede leerlo como

var urlToJobIndex= myApp.Urls.jobIndexUrl; // Or With the base url, you may safely add the remaining url route. var urlToJobIndex2= myApp.Urls.baseUrl+"jobs/GetIndex";

Here hay una respuesta detallada sobre lo mismo, pero usando esto en una página / vista específica

Js angular

Es posible que necesite la (s) url (es) relativa (s) correctas en su controlador / servicios / directivas angulares. El mismo enfoque funcionará también para su código angular. Simplemente construya el objeto de espacio de nombres js y use el proveedor de value angular para pasar los datos a sus controladores / servicios / directivas angulares como se explica en esta publicación en detalle con código de ejemplo.