我在.net 4.0中使用MVC.我有一个基本的Html.ActionLink,我希望将多个参数传递给控制器/动作.
每次我调试ActionResult时,只有一个参数通过而另一个是null(取决于哪个是第一个).现在我知道我可以传递复杂的物体,因为我可以让"联盟"对象通过.但是,我不确定为什么我的参数中只有一个可以随时通过.
Code in View :(不要骚扰我ViewBag.我知道它不受欢迎.此外,联盟是一个复杂的对象)
@Html.ActionLink("Sort By WeeK", "Sort", "Schedule",
new { league = ViewBag.League, sortType = "Week" }, null)
Run Code Online (Sandbox Code Playgroud)
控制器中的代码:(这里没有惊喜)
public ActionResult Sort(League league, string sortType)
{
//Do some stuff here
return View("Schedule");
}
Run Code Online (Sandbox Code Playgroud)
我猜测答案将围绕路由.这让我想到了第二个问题.如何在不经常添加新maproutes的情况下使这种类型的ActionLink(动作/控制器/复杂和简单对象的集合)工作.是否有我可以添加的通用/通配符RouteMap,所以我不必经常在解剖学上将相同的路由映射添加到global.asax.或者我希望在我希望传递给Action的对象类型中有一些灵活性,所以我无法预定义确切的签名.
我看过很多关于这个主题的帖子,但没有一个回答我的问题.
有没有办法将 EntitySet 动态添加到 ODataConventionModelBuilder。
我正在 .net 中开发 OData 服务。我们将返回的一些实体来自外部程序集。我很好地阅读了程序集并获取了相关类型,但由于这些类型是变量,我不确定如何将它们定义为实体集。
例子:
public static void Register(HttpConfiguration config)
{
//some config house keeping here
config.MapODataServiceRoute("odata", null, GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
//more config housekeeping
}
private static IEdmModel GetEdmModel()
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Namespace = "SomeService";
builder.ContainerName = "DefaultContainer";
//These are the easy, available, in-house types
builder.EntitySet<Dog>("Dogs");
builder.EntitySet<Cat>("Cats");
builder.EntitySet<Horse>("Horses");
// Schema manager gets the rest of the relevant types from reading an assembly. I have them, now I just need to create entity …Run Code Online (Sandbox Code Playgroud) 在 Vue js 函数执行期间,加载元素上的简单显示和隐藏失败。
我有一个 vue js 函数,它会做一些事情并在完成后更新数据。我正在尝试在此过程中显示加载动画。出于本次讨论的目的,我已将该过程简化为一个简单的循环,以消除所有其他问题(即 ajax、异步等)。
我的按钮 HTML 如下所示:
<button type="button" v-on:click="DoStuff()">Do Stuff</button>
Run Code Online (Sandbox Code Playgroud)
我的 vue js 代码如下所示:
var client = new Vue({
el: '#client',
data: {
someData: []
},
methods: {
DoStuff: function() {
//Show Loader
$(".loader").show();
//Waste 5 seconds
for (var i = 0; i < 100000000; i++) {
var x = i;
}
//Hide loader
$(".loader").hide();
// let me know it's done.
alert('cool');
}
Run Code Online (Sandbox Code Playgroud)
装载机从不显示。如果我注释掉 hide 命令,加载程序会在警报之后显示。让我觉得某种异步操作正在幕后进行,但我没有做异步的事情。