MVC 4 Пользовательский маршрут для поиска по ID - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий маршрут "ActionRoute", который я хочу найти по идентификатору в таблице. Если я поставлю следующий маршрут, это не покажет никаких данных, только пустая таблица и пустое представление. Идентификатор для поиска: 1 Это десятичное значение.

Что я не так могу сделать, и что я должен исправить, чтобы он работал хорошо?

Спасибо

http://localhost:62357/ActionApprovers/Action/1

Проблема при поиске по маршруту

Итак, я написал контроллер, который нашел в учебнике, но он не ' t работа

public ActionResult Action(decimal? idprod)
{
        Entities db = new Entities();
        var s = from r in db.TB_RS_PROD
                select r;
        s = s.Where(b => b.IDPROD == idprod);
        return View(s);
}

И это мое мнение

@model IEnumerable<MvcInventory.TB_RS_PROD>
@{

}

<html>
<table class="table table-striped">
    <tr>
        <td>ID PRODUCT</td>
        <td>PRODUCT NAME</td>
        <td>QUIANTITY</td>
        <td>DATE</td>
        <td>STATUS</td>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.IDPROD</td>
            <td>@item.PROD_NAME</td>
            <td>@item.QUANTITY</td>
            <td>@item.UPDATE_DATE</td>
            <td>@item.STATUS</td>
        </tr>
    }
</table>
</html>

Это Route on RouteConfig.cs

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

        routes.MapRoute(
            name: "ActionRoute",
            url: "ActionApprovers/{idprod}",
            defaults: new { controller = "ActionApprovers", action = "Action", idprod = 0 },
            constraints: new { beerid = @"\d+" }
        );

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

    }

The Global.asax

public class MvcApplication : System.Web.HttpApplication
{

    protected void Application_Start()
    {

        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}

1 Ответ

0 голосов
/ 01 апреля 2020

Поиск на многих сайтах, которые я прочитал о запросе с идентификатором маршрута.

public ActionResult Action(decimal? idprod)
{
    Entities db = new Entities();
    idprod = Convert.ToDecimal(Request["idprod"]); // This is the solution
    var s = from r in db.TB_RS_PROD
            select r;
    TempData["rt"] = idprod;
    s = s.Where(b => b.IDPROD == idprod);
    return View(s);
}
...