将ActionLink添加到默认MVC Web应用程序

时间:2012-05-09 01:33:36

标签: c# html asp.net-mvc razor

我创建了一个HelloWorld控制器及其相应的视图。当我转到http://localhost/HelloWorld

时,一切正常

我正在尝试将菜单项添加到默认的MVC应用程序中。在_Layout.cshtml文件中我有

<ul id="menu">
    <li>@Html.ActionLink("Home", "Index", "Home")</li>
    <li>@Html.ActionLink("Hello World", "HelloWorld", "")</li>
    <li>@Html.ActionLink("About", "About", "Home")</li>
</ul>

请注意,我们添加的只是Hello World部分。但是,当我点击菜单项时,我需要http://localhost/Home/HelloWorld。我如何才能进入http://localhost/HelloWorld

我是MVC的新手,并不确定我在做什么。一些谷歌搜索已经提到修改Global.asax.cs中的路由,但这似乎有点奇怪,不知道从哪里开始。我也尝试使用〜来回到root,这在旧学校的asp.net页面中有效但不在这里。

3 个答案:

答案 0 :(得分:2)

ActionLink的定义是。

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName
)

由于您尝试重定向到/HelloWorld,我假设您的控制器为HelloWorld且您的操作为Index。使用这些信息我们可以填写方法。

Html.ActionLink(
    "Hello World",  // Link Text
    "Index",        // Action
    "HelloWorld",   // Controller
)

答案 1 :(得分:0)

您想要的ActionLink语法是:

@Html.ActionLink(string linkText, string actionName, string controllerName)

您传入ActionName并将controllerName留空,默认情况下会假设它是当前控制器上的Action(在本例中为“Home”)。

@Html.ActionLink("Hello World", "HelloWorld", "HelloWorld")

假设HelloWorld上的操作名称中的HellowWorldController。如果Action不同,请用适当的名称替换第二个参数。

答案 2 :(得分:0)

您也可以使用空字符串:

public class RxJavaRetofit {
    private  ApiMethods api;
    public RxJavaRetofit() {
        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(interceptor)
                .build();
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(AppUrls.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(client)
                .build();

          api = retrofit.create(ApiMethods.class);

  }

   public void getSocialFeed(Context context, SocialRequest socialRequest, final mevorun.mevolife.com.mevorun.listeners.onSocialServiceResponseHandler onServiceResponseHandler) {
       Utils.showDialog(context);
       api.getSocialData(socialRequest).subscribeOn(Schedulers.io())
               .observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<Social>() {
           @Override
           public void onSubscribe(Disposable d) {


           }

           @Override
           public void onNext(Social value) {
               try {
                   onServiceResponseHandler.onServerResponse(value.getResponse(),"Feed");
                   Utils.hideDialog();
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }

           @Override
           public void onError(Throwable e) {


           }

           @Override
           public void onComplete() {

               Utils.hideDialog();

           }


       });
   }