我创建了一个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页面中有效但不在这里。
答案 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();
}
});
}