我正在MVC
开发一个项目并且它一直在工作,但我无法解决错误,我尝试访问从global. asax
创建的带参数的网址它给了我错误代码404。
routes.MapRoute(
"Unit",
"Home/Unit/{id}/{name}",
new { controller = "Home", action = "Unit", id = UrlParameter.Optional }
);
这里我在jquery中创建路由,我将路由添加到带文本的div
$('#nombreUnidad').append("<a href='Unit/" + param.Unidad.Id + "/" + param.Unidad.NombreUnidad + "'>Nombre: " + param.Unidad.NombreUnidad + "</a>");
来自我的控制器的动作也是如此
public ActionResult Unit(int id, string name)
{
return View("~/Views/Home/Unit.cshtml");
}
我想通过单击div来获取该视图,是的,在这种情况下视图将具有模型,它类似于配置文件,这就是为什么在jquery中我创建div的文本的路径能够使用我选择的单位数据返回视图
答案 0 :(得分:0)
在div click事件中应用它。
$.ajax({
type: "POST", //Post or Get
url: '@Url.Action("Action","Controller")',
data: JSON.stringify({ id:1, name: 'pp' }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
//code to handle the response
},
error: function () {
//code to handle error
}
});
答案 1 :(得分:0)
这是一种更清洁的方法来解决这个问题。你可以像这样使用你的jquery:
$('#nombreUnidad').append(function(){
return $("<a>").attr("href", $(this).attr("data-appUrl") + ...).text("link text");
});
此代码直接从HTML中的data-appUrl属性获取您的URL。将URL直接传递给razor要容易得多。像这样:
<div id="nombreUnidad" data-appUrl="@Url.Content("~/Home/Unit/")">
<span>Here is some <b>sample text</b></span>
</div>
代码data-appUrl="@Url.Content("~/Home/Unit/")"
可帮助您确保正确的网址用于当前网页。
以下是jquery的示例用法:https://jsfiddle.net/xpvt214o/61226/