Tenía una vista de Detalles que contiene un botón Guardar y Agregar línea. El botón AddLines llamará a la función javascript "AddLinePopup" para abrir una nueva ventana ("window.open('./AddLine?id=' + id") con la vista Agregar línea. Esto funcionaba correctamente al abrir la vista Detalles directamente. se produjo un problema cuando se hizo clic en el botón Guardar y llamó al controlador (PRController) para guardar datos y redirigir de nuevo a la vista de detalles. La URL en la función javascript AddLinePopup agregará el controlador ("'PR/Details/AddLine?id=1" ) cuando se hace clic en el botón AddLine y se genera el error de URL. Intenté usar "window.open('~/PR/AddLine?id=' + id')", "window.open('../PR/AddLine? id=' + id')" tampoco funciona. ¿Cómo puedo representar correctamente la URL de la función JavaScript AddLinePopup ("'PR/AddLine?id=1") después de hacer clic en el botón Guardar? Cualquier sugerencia o solución es muy apreciada. Gracias por adelantado.
//PRController public ActionResult Save(DetailsModel pr) { return RedirectToAction("Details", new { id = pr.ID }); } //View @using (Html.BeginForm("Save", "PR", FormMethod.Post)) { <input type="submit" value="Save" class="btn btn-primary" title="Save changes" /> } @Html.ActionLink("Line", "AddLine", null, new { @class = "fa fa-plus-square btn btn-primary", title = "Add new line", onclick = "AddLinePopup('" + @Model.ID + "');return false;" }) <script type="text/javascript"> AddLinePopup = function (id) {window.open('./AddLine?id=' + id, "AddLineWindow", target = '_blank','width=800px,height=650px,top=10,left=250'); } </script>Esto resuelve mi problema. Uso el enlace para llamar a la función Javascript y abrir una nueva ventana en JavaScript.
`<a href="javascript:AddLinePopup('@Url.Action("AddLine", "PR")','@Model..ID')">
AddLinePopup = function (url,id) { window.open(url + '?id=' +id,"addlineWindow",'width=800px,height=400px,top=10,left=e250');}`