Ich versuche, ein neues Fenster zu öffnen mit window.open (actionUrl) die ActionUrl besteht aus der Aktionsadresse und URL als Parameter. so schließlich die actionURL ist: "?/Default/Einzelheiten url = http://www.someaddress.com?a1=1&a2=2&a3=3" jedoch in der Aktion die URL i erhalten ist: "http://www.someaddress.com?a1=1" ich nicht bekommen "& a2 = 2 & a3 = 3" ParameterSenden von URL mit Parameter zu Aktion Funktion über Javascript
Hierist der relevante Code anzeigen:
<div>
<input type="button" value="test" id="btnTest" />
</div>
<script>
var vurl = '@Url.Action("Details", "Default")';
$(function() {
$("#btnTest").click(function() {
var url = "http://www.someaddress.com?a1=1&a2=2&a3=3";
vurl = vurl + url;
window.open(vurl);
});
})
</script>
und dies ist der Controller und die Aktion
public class DefaultController : Controller
{
// GET: Default
public ActionResult Index()
{
return View();
}
// GET: Default/Details/5
public ActionResult Details(string url)
{
return View();
}
}
Danke, Verwendung von encodeURIComponent das Problem zu lösen. Allerdings habe ich nicht verstanden, wann und warum decodeUriComponent – dan
Ich denke, es hängt von der Situation ab. Wenn Sie einen Parameter codieren, müssen Sie ihn normalerweise dekodieren, wenn Sie ihn verwenden möchten. Andernfalls werden unerwünschte codierte Zeichen ausgegeben. Zum Beispiel ist der codierte URL-Wert "http% 3A% 2F% 2Fwww.someaddress.com% 3Fa1% 3D1% 26a2% 3D2% 26a3% 3D3", was keine gültige URL mehr ist. Sie müssen es entschlüsseln, um eine gültige/verwendbare URL zu erhalten. Aber ich denke, ASP.NET behandelt URI-kodierte Parameter nativ, so dass Sie sich nicht mit dem Dekodierungsteil befassen müssen – Brunt