如何在MVC中使用自定义路由创建自定义URL

阿德南

我在制作MVC中的自定义网址时遇到问题。我想要这样的网址:

http://www.domainname.com/directory/bysearch/value1/value2

但它像这样

http://www.domainname.com/directory/bysearch?txtaddress=value1&searchString=value2

RouteConfig.cs代码

routes.MapRoute(
           name: "Directory",
           url: "Directory/{qualifier}/{v1}/{v2}/{v3}/{v4}/{v5}/{v6}/{v7}/{v8}",
           defaults: new
           {
               controller = "Directory",
               action = "index",
               qualifier = UrlParameter.Optional,
               v1 = UrlParameter.Optional,
               v2 = UrlParameter.Optional,
               v3 = UrlParameter.Optional,
               v4 = UrlParameter.Optional,
               v5 = UrlParameter.Optional,
               v6 = UrlParameter.Optional,
               v7 = UrlParameter.Optional,
               v8 = UrlParameter.Optional
           });
routes.MapRoute(
    name: "DirectorySerach",
    url: "Directory/bysearch/{v1}/{v2}",
    defaults: new
    {
        controller = "Directory",
        action = "Search",
        v1 = UrlParameter.Optional,
        v2 = UrlParameter.Optional
    });

控制器

public ActionResult Index(string qualifier, string v1, string v2, string v3, string v4, string v5, string v6, string searchString, int page = 1)
    {
       // code logic here
       return View();
    }
public ActionResult Search(string v1 = null,string v2 = null)
{
   //code logic here
    return View();
}

看法

@using (Html.BeginForm("search","Directory", FormMethod.Get))
{
    <div class="form-group">
        <div class="c-checkbox">
            <input id="chkOnline" name="chkOnline" class="c-check" type="checkbox">
            <label for="chkOnline" class="c-font-thin c-font-17">
                <span></span>
                <span class="box"></span> Online
                <span class="check"></span>
            </label>
        </div>
    </div>
    <div class="form-group">
       @Html.TextBox("txtaddress", null, new { @class = "form-control c-square c-theme input-lg", @placeholder = "Address OR ZIP/Postal Code OR City" })
    </div>
    <div class="input-group input-group-lg c-square">
        @Html.TextBox("searchString", null, new { @class = "form-control c-square c-theme input-lg", @placeholder = "Enter Keyword" })
        <span class="input-group-btn">
            <button class="btn c-theme-btn c-btn-square c-btn-uppercase c-font-bold" type="submit">Go!</button>
        </span>
    </div>
}

请帮助/指导我,如果我错了或出了什么问题。以及如何解决。我感谢您宝贵的时间和精力。提前致谢。

阿米特·库玛(Amit Kumar)

如果要制作干净的URl,则需要手动放置URl,因为“表单提交”将始终创建查询字符串。

因此,删除您的表单并用超链接替换按钮。并在链接上写入点击事件。

@Html.TextBox("v1", null, new {  })
@Html.TextBox("v2", null, new {  })
<a href="javascript:void(0)" id="btnSearch" class="btn btn-primary">GO</a>

现在编写一个将创建URl的函数

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(){
    $('#btnSearch').on('click',function(){
    var baseUrl = '@Url.Action("Search", "Directory")'; 
    var gettext1= $('#v1').val();
      var gettext2= $('#v2').val();
       if(gettext1){
        baseUrl  += '/'+gettext1;
       }else{
        baseUrl  += "/0";
      }
      if(gettext2){
        baseUrl  +="/"+ gettext2;
       }else{
        baseUrl  += "/0";
      }
    location.href=baseUrl;
    });
});
</script>

在这里,您需要处理0就像用户没有在文本框中输入任何内容一样,我传递的是0。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Sails.js中使用自定义路由中间件?(ExpressJS)

来自分类Dev

如何在SublimeText中使用自定义字体

来自分类Dev

如何在QStateMachine addtransition中使用自定义信号

来自分类Dev

如何在MVC中使用自定义storeId?

来自分类Dev

如何在自定义指令中使用ngChange

来自分类Dev

如何在iOS中使用.ttc自定义字体

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在MSBuild脚本中使用自定义变量?

来自分类Dev

如何在Yesod路由处理程序中使用自定义错误处理程序?

来自分类Dev

如何在自定义对象的android中使用ArrayAdapter

来自分类Dev

如何在Java中使用自定义类型注释

来自分类Dev

PHP MVC路由>如何创建自定义路由?

来自分类Dev

如何在MVC5中使用自定义属性路由重定向到路由

来自分类Dev

如何在Swagger中使用自定义模板

来自分类Dev

如何在ASP.NET MVC中创建到自定义路由的ActionLink?

来自分类Dev

如何在Storyboard中使用自定义UICollectionViewCell?

来自分类Dev

如何在动态编译中使用自定义类

来自分类Dev

如何在Sails.js中使用自定义路由中间件?(ExpressJS)

来自分类Dev

MVC创建自定义路由

来自分类Dev

可以在Laravel 4中使用RESTful路由创建自定义URL

来自分类Dev

如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

来自分类Dev

如何在wxPython中使用自定义热点创建自定义光标?

来自分类Dev

如何在MVC中创建自定义路由

来自分类Dev

如何在emberjs中使用自定义“抽象”路由

来自分类Dev

如何在MVC 4中自定义路由

来自分类Dev

MVC自定义URL路由

来自分类Dev

在wp-mvc插件中使用自定义路由

来自分类Dev

如何在CakePHP中使用自定义路由?

来自分类Dev

如何在 tensorflow 或 pytorch 中使用自定义权重初始化创建自定义神经网络

Related 相关文章

  1. 1

    如何在Sails.js中使用自定义路由中间件?(ExpressJS)

  2. 2

    如何在SublimeText中使用自定义字体

  3. 3

    如何在QStateMachine addtransition中使用自定义信号

  4. 4

    如何在MVC中使用自定义storeId?

  5. 5

    如何在自定义指令中使用ngChange

  6. 6

    如何在iOS中使用.ttc自定义字体

  7. 7

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  8. 8

    如何在MSBuild脚本中使用自定义变量?

  9. 9

    如何在Yesod路由处理程序中使用自定义错误处理程序?

  10. 10

    如何在自定义对象的android中使用ArrayAdapter

  11. 11

    如何在Java中使用自定义类型注释

  12. 12

    PHP MVC路由>如何创建自定义路由?

  13. 13

    如何在MVC5中使用自定义属性路由重定向到路由

  14. 14

    如何在Swagger中使用自定义模板

  15. 15

    如何在ASP.NET MVC中创建到自定义路由的ActionLink?

  16. 16

    如何在Storyboard中使用自定义UICollectionViewCell?

  17. 17

    如何在动态编译中使用自定义类

  18. 18

    如何在Sails.js中使用自定义路由中间件?(ExpressJS)

  19. 19

    MVC创建自定义路由

  20. 20

    可以在Laravel 4中使用RESTful路由创建自定义URL

  21. 21

    如何在Java Web App中创建自定义标签?如何在JSP中使用自定义标签?

  22. 22

    如何在wxPython中使用自定义热点创建自定义光标?

  23. 23

    如何在MVC中创建自定义路由

  24. 24

    如何在emberjs中使用自定义“抽象”路由

  25. 25

    如何在MVC 4中自定义路由

  26. 26

    MVC自定义URL路由

  27. 27

    在wp-mvc插件中使用自定义路由

  28. 28

    如何在CakePHP中使用自定义路由?

  29. 29

    如何在 tensorflow 或 pytorch 中使用自定义权重初始化创建自定义神经网络

热门标签

归档