标签: asp.net-mvc-routing

使用MVC视图页面+ $(文档).ready

我正在编辑这个原始问题,因为我认为我已经缩小了问题的范围......

我的网站中有一个视图,不允许我将$ document.ready放在母版页内容占位符中.我已经把这个页面剥离到了骨子里,唯一特别之处在于它在global.asax中有一个自定义路由

 routes.MapRoute("Books",
                 "{controller}/{action}/{keywords}/{pageNumber}",
                  new { controller = "Books", action = "SearchResults" }
                 );
Run Code Online (Sandbox Code Playgroud)

知道为什么这个自定义路由会在放入masterpages contentplaceholder区域时停止$ document.ready正常工作吗?

asp.net-mvc jquery asp.net-mvc-routing

0
推荐指数
1
解决办法
8852
查看次数

0
推荐指数
2
解决办法
606
查看次数

是 @, !符号对于URL和路由配置是否安全?

我在路由器映射中形成了一些网址

/section/{{some_section_name}}
/topic/{{some_topic_name}}
Run Code Online (Sandbox Code Playgroud)

现在我正在考虑将该部分转换为短路, /!{{some_section_name}}以避免显式拼写/section

同样我想用 /@{{some_topic_name}}而不是/topic/{{some_topic_name}}

我相信浏览器不会自己编码这些字符.可以使用!和上面提到的路线中的@符号?请在网上使用这些约定给我副作用.

c# xml asp.net asp.net-mvc asp.net-mvc-routing

0
推荐指数
1
解决办法
130
查看次数

使用基于正则表达式的路由约束是不是很糟糕?

我有以下路线将在我的ASP.NET MVC网站上广泛发布:

    routes.MapRoute(
        null,
        "products/{ProductID}/{SeoName}",
        new { controller = "Product", action = "ProductDetails", SeoName = UrlParameter.Optional }
    );
Run Code Online (Sandbox Code Playgroud)

我想确保ProductID是一个有效的整数.我知道我可以使用基于正则表达式的路由约束或使用类似于int.TryParse()的自定义路由约束来执行此操作.

在我看来,正则表达式是相当昂贵的操作,我不想为每个访问我的网站的请求运行一个,但我似乎找不到任何信息说我应该小心使用基于正则表达式的路由约束.

所以我的问题是,我应该使用基于正则表达式的路由约束还是自定义路由约束来验证参数是否为整数?

regex asp.net-mvc asp.net-mvc-routing

0
推荐指数
1
解决办法
2814
查看次数

ASP.NET MVC 3服务器错误

我有以下控制器:

public class ItemController : Controller
{
    private SomeDbEntities _db= new SomeDbEntities ();

    //
    // GET: /Item/

    public ActionResult Index()
    {
        var items = _db.Items.ToList();

        return View(items);
    }

    public ActionResult Decription(int id)
    {
        var item = _db.Items.Single(a => a.ItemID == id);

        return View(item); 
    }

}
Run Code Online (Sandbox Code Playgroud)

和2次浏览:

Index.cshmtl

@model IEnumerable<Web.Models.Item>

@{
    ViewBag.Title = "Index";
 }

<h2>Index</h2>

<ul>
@foreach (var item in Model)
{

    <li>@Html.ActionLink(item.Name, "Description", new { id = item.ItemID})</li>
}
Run Code Online (Sandbox Code Playgroud)

Description.cshtml

@model Web.Models.Item

@{
    ViewBag.Title = "Decription";
 }

 <h2>Decription</h2>
 <p>@Model.Description</p> …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

0
推荐指数
1
解决办法
111
查看次数

MVC RedirectToAction无法正常工作

在我的一个控制器中,我确实有一个如下所示的返回:

return RedirectToAction("AdministerFiles/ViewDataFiles?catid=14");
Run Code Online (Sandbox Code Playgroud)

但是当它将结果呈现给浏览器时,字符串变成了这个:

AdministerFiles/AdministerFiles/ViewDataFiles%3fcatid%3d14
Run Code Online (Sandbox Code Playgroud)

我该怎么解决这个问题?谢谢 .

.net c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

0
推荐指数
1
解决办法
1442
查看次数

错误请求 - 无效的网址

当我在Windows Azure模拟器(开发环境)上运行Asp.Net MVC 2项目时,我遇到了下面提到的问题

在此输入图像描述

我的web.config文件如下:

<httpRuntime maxUrlLength="4096" relaxedUrlToFileSystemMapping="true" maxQueryStringLength = "4096" requestValidationMode="4.0" />
Run Code Online (Sandbox Code Playgroud)

我的查询字符串URL如下:

http://www.pawloyalty.com:82/booking/camp-canine-doggy-daycare-and-boarding/cgillette/key/camp-canine-doggy-daycare-and-boarding-cgillette-20130103154022/pets/bailey/服务/全日托/日期/ 2013年1月3日%2b2013-1-4%2b2013-1-7%2b2013-1-8%2b2013-1-9%2b2013-1-10%2b2013-1- 11%2b2013-1-14%2b2013-1-15%2b2013-1-16%2b2013-1-17%2b2013-1-18%2b2013-1-21%2b2013-1-22%2b2013-1-23% 2b2013-1-24%2b2013-1-25%2b2013-1-28%2b2013-1-29%2b2013-1-30%2b2013-1-31%2b2013-2-1%2b2013-2-4%2b2013- 2-5%2b2013-2-6%2b2013-2-7%2b2013-2-8%2b2013-2-11%2b2013-2-12%2b2013-2-13%2b2013-2-14%2b2013-2- 15%2b2013-2-18%2b2013-2-19%2b2013-2-20%2b2013-2-21%2b2013-2-22%2b2013-2-25%2b2013-2-26%2b2013-2-27% 2b2013-2-28%2b2013-3-1%2b2013-3-4%2b2013-3-5%2b2013-3-6%2b2013-3-7%2b2013-3-8%2b2013-3-12%2b2013- 3-13%2b2013-3-14%2b2013-3-15%2b2013-3-18%2b2013-3-19%2b2013-3-20%2b2013-3-21%2b2013-3-22%2b2013-3- 25%2b2013-3-26%2b2013-3-27%2b2013-3-28%2b2013-3-29/rtimes/7.5%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6% 2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2 B19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19% 2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6% 2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19% 2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6%2b19%2B6% 2b19%2B6%2b19/rextras-贝利/? - 步骤=日期

注意:上面有1490 characters

我的控制器Action方法的重定向如下:

return RedirectToRoute("booking", new { action = "index", providerKey = providerKey, ownerKey = ownerKey, arguments = arguments, step = step });
Run Code Online (Sandbox Code Playgroud)

注意: arguments 具有以上查询字符串详细信息

如何摆脱这个错误页面?

.net azure asp.net-mvc-routing azure-web-roles asp.net-mvc-2

0
推荐指数
1
解决办法
2306
查看次数

URL 处理 + MVC 4 + Jquery Ajax + IIS

我一直在开发一个 MVC 4 应用程序,其中还包括通过 Jquery 的 Ajax。我遇到了一个问题。

例如,如果我单击一个按钮,onclick 事件将触发一个 javascript 方法。此方法位于 .js 文件中。

该 javascript 方法使用 Ajax 来调用ActionResult接收一些参数(字符串、整数)的方法,没什么特别的。所以..假设我的操作结果在“ Person”中Controller,它的名称是“ Add”。所以我想添加一个人。

我的 ajax 调用中的 url 属性应该是"/Person/Add",我的数据应该是这样的:

var person = new Object();
person.name = "John";
person.id = 1;

data: person
Run Code Online (Sandbox Code Playgroud)

当使用 Visual Studio 运行应用程序时,这不会出现任何问题。但是当我将它部署到 IIS 中时,我收到 404 错误。

我已经尝试过这个。我<link> <link id="PersonAddURL" href="Url.Content("~/Person/Add") />在布局中添加了 a ,然后没有使用而是url: "/Person/Add"将其更改为url: $("#PersonAddURL").attr("href")

现在,这可行,我认为这不是解决它的好方法。应该还有另外一个更好的。即使我设法解决了这个问题,我仍然希望有人向我解释发生这种情况的原因。我不喜欢每个网址都有一个链接标签的想法。

感谢未来的答案。

iis asp.net-mvc jquery asp.net-mvc-routing

0
推荐指数
1
解决办法
2230
查看次数

在控制器中生成<a>链接以发送电子邮件

我正在实现一个密码重置系统,虽然代码工作正常,但是对用户来说存在一个小问题.该系统通过生成通过电子邮件发送的一次性加密安全令牌来工作.问题是,要使用这些令牌,用户必须单击他们收到的电子邮件中的链接.这本身不是问题,但有问题的链接看起来像这样:

http://www.example.com/Account/ResetPassword/184?t=BC2EveZtRl3wjbONboalzlUVwUpp%252BYaiKvbsZ6aPPYE%253D
Run Code Online (Sandbox Code Playgroud)

用户不愿意点击此链接,因为它很大且看起来很吓人; 他们认为这是一个恶意的第三方窃取他们的密码或给他们一个病毒或东西的伎俩.

如果这是一个视图,我会用它@Html.ActionLink()来生成一个漂亮的<a>链接,上面写着"点击这里重置你的密码",这很好.但是,在一个控制器中,我无法访问该方法,除非我实例化一个HtmlHelper需要ViewData的东西,这导致需要实例化的整个链条以伪造一些我不会使用的东西,并且我看到的每个地方都说这是不好的做法,我不应该这样做.

<a>在ASP.NET MVC中,在控制器代码中生成整洁链接的最简洁方法是什么?

html hyperlink asp.net-mvc-routing asp.net-mvc-4 asp.net-core-2.0

0
推荐指数
1
解决办法
1016
查看次数

使用查询字符串从URL重定向路由

我有一个我已经路由的asp.net mvc网站.我想要做的是从"/general.asp?id=102"到"/ MyNewPage"的301重定向.我有一个旧id的数据库表以及每个id的新页面.

我正在使用Routemagic来进行主重定向,并且它会很有效,直到你有查询字符串.(例如"/myoldpage.asp"到"/ mynewpage"效果很好)

我使用的代码是这样的:

Dim route = routes.MapRoute()
routes.redirect(Function (rt) rt.MapRoute(uniquestring, fromURL), true).To(route)
Run Code Online (Sandbox Code Playgroud)

如果旧URL中包含查询字符串,则会失败.

我如何进行像上面指定的重定向:"/general.asp?id=102"到asp.net MVC中的"/ MyNewPage"?

asp.net asp.net-mvc-routing asp.net-mvc-3 routemagic

0
推荐指数
1
解决办法
377
查看次数

Server.MapPath在mvc中不起作用

我需要在文件夹路径中获取图像是否存在.我使用以下代码:

bool isExists = System.IO.Directory.Exists(Server.MapPath(FolderPath + "Logo.png"));
Run Code Online (Sandbox Code Playgroud)

但是如果文件存在,bool变量返回false.

c# asp.net-mvc asp.net-mvc-routing

0
推荐指数
1
解决办法
389
查看次数

从视图运行时如何修复Url(〜/ Views / Home / Index.cshtml)

我正在使用MVC 4 VS 2012 Express for Web开发网站。通常,当我直接从视图中运行时,例如Home Controller中的Index View,我在URL地址栏上获得了“ http:// localhost:62335 / ”,但是现在我获得了http:// localhost:62335 / Views / Home /Index.cshtml

我不会在RouteConfig类上更改路由,如下面的代码所示

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况以及如何解决?

asp.net-mvc asp.net-mvc-routing razor asp.net-mvc-4

0
推荐指数
1
解决办法
6902
查看次数

Post方法在ASP.NET Core中不起作用

我正在尝试创建ASP.NET Core Web API.我有Post/Get方法,如下所示:

    [HttpGet]
    [Route("api/getProffessionByID/{id}")]
    public IHttpActionResult getProffessionByID(Int64 id)
    {
        AllProffession model = new AllProffession();
        try
        {
            var result = model.GetAllProffession.Where(i => i.id == id).FirstOrDefault();
            return Ok(result);
        }
        catch (Exception ex)
        {
            return InternalServerError("Something Went Wrong : " + ex.ToString());
        }
    }

    [HttpPost]
    [Route("api/savePerson")]
    private IHttpActionResult savePerson(PersonModel model)
    {
        try
        {
            if (model.name != string.Empty || model.weight != 0 || model.height != 0 || model.proffession != 0)
            {
                Guid guid = Guid.NewGuid();
                Random random = new Random();
                int i …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc-routing asp.net-web-api2

-1
推荐指数
1
解决办法
4254
查看次数