标签: actionresult

ASP.NET MVC中的所有内置ActionResults

我正在寻找一个内置的列表(和第三方将是一个奖励)ActionResults你可以在ASP.NET MVC的控制器中使用.

到目前为止,我发现了以下内容:

  • ContentResult - this.Content()
  • ActionResult - this.View()
  • JsonResult - this.Json()
  • JavascriptResult - this.Javascript()
  • PartialViewResult - this.PartialView()

我错过了那些有用的吗?

asp.net-mvc actionresult

3
推荐指数
2
解决办法
2411
查看次数

如何使Jquery自动完成结果事件处理程序工作?

我编写的代码在用户选择有效的东西(下面)后,无法使用JQuery自动完成来触发结果函数.

结果,我的意思是结果处理程序,一个在自动完成插件中进行了良好选择后触发的函数.记录在这里.

在我的例子中,我有一个表格,它实际上是一个表格,每行都相同,减去字段上的唯一ID:Item1,Qty1,Desc1,然后是Item2,Qty2,Desc2,依此类推.当用户键入Item1代码时,Desc1文本应显示所选项目代码的英语(Item2 - > Desc2,依此类推).

我使用此代码查找所有项目输入并在其上拍打自动完成.结果事件处理程序由于某种原因不会触发.如果你注意到,我硬编码了"Item1"选项,因为我还没有弄清楚如何选择项目对应的描述,其中Item1 - > Desc1,Item2 - > Desc2,依此类推.

我使用MVC Url.Content只是因为我碰巧让它工作.有人使用了Url.Action,我觉得它更好,只需要搞清楚.

如有必要,请随意更正我的使用,这是我第一次使用ASP.NET MVC/JQuery.

谢谢 :)

代码:

$(document).ready(function(){

  $("input[id^='Item']").autocomplete( "<%= Url.Content("~/products/autocomplete")%>", {
  dataType: 'json',
  parse: function(data) {
      var rows = new Array();
      for( var i = 0; i<data.length; i++)
      {   rows[i] = {data:data[i], value:data[i].name, result:data[i].id }; }
      return rows;
  },
  formatItem: function(row, i, n) {
            return row.id + ' - ' + row.name;
        },
  selectFirst: true,
  //autoFill: true,
  minChars: 2,
  max: 30,
  autoFill: …
Run Code Online (Sandbox Code Playgroud)

autocomplete jquery-plugins actionresult

3
推荐指数
1
解决办法
2万
查看次数

MVC Handler用于未知数量的可选参数

我正在使用MVC路由,它将在URL的末尾获取未知数量的参数.像这样的东西:

domain.com/category/keyword1/keyword2/.../keywordN

这些关键字是我们必须匹配的过滤器的值.

到目前为止,我能想到的唯一方法是UGLY ......只需创建一个ActionResult,其参数多于我可能需要的参数:

ActionResult CategoryPage(string urlValue1,string urlValue2,string urlValue3等...){}

这感觉不对劲.我想我可以将它们塞进一个查询字符串中,但后来我丢失了性感的MVC URL,对吧?有没有更好的方法来声明处理程序方法,以便它处理未知数量的可选参数?

必须在Application Start上连接路由,这应该不是那么难.关键字的最大数量可以很容易地从数据库中确定,因此没有大问题.

谢谢!

asp.net-mvc url-routing actionresult asp.net-mvc-routing

3
推荐指数
1
解决办法
1618
查看次数

在使控制器IoC框架不可知的同时,如何将Ninject与ActionResults一起使用?

我见过的几乎所有Ninject示例都解释了如何在ASP.NET MVC中使用它,它会自动将依赖项注入控制器.我如何手动使用Ninject?假设我有一个自定义ActionResult:

public class JsonResult : ActionResult
{
    [Inject] public ISerializer Serializer { get; set; }

    public JsonResult(object objectToSerialize)
    {
        // do something here
    }

    // more code that uses Serializer
}
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中,我正在使用这样JsonResult的方法:

public ActionResult Get(int id)
{
    var someObject = repo.GetObject(id);
    return new JsonResult(someObject);
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我自己实例化了这个对象,它回避了Ninject的注入,并且Serializer将为null.但是,按照以下方式执行此操作对我来说似乎并不合适:

public ActionResult Get(int id)
{
    var someObject = repo.GetObject(id);
    return IoC.Kernel.Get<JsonResult>(someObject);
}
Run Code Online (Sandbox Code Playgroud)

因为现在控制器中不仅存在对Ninject的依赖,而且还必须在静态类/单例中公开Ninject内核,并确保依赖注入的对象仅通过内核创建.

有没有办法以某种方式配置Ninject注入依赖,而不依赖于暴露内核?new如果可能的话,我希望能够使用关键字.

dependency-injection ninject inversion-of-control actionresult asp.net-mvc-2

3
推荐指数
1
解决办法
3081
查看次数

我可以从ActionResult中检索ViewModel吗?

试图避免在这里重复.我在基类控制器中有一个动作,我不允许修改.我希望我的动作做一些检查,调用基类操作,并在渲染之前以某种方式修改结果.但我需要做的部分工作包括修改一些属性,ViewModel基类返回一个ActionResult.我看不出有什么办法让ViewModelActionResult,所以我可能会写一个自定义的方法,其中大部分只会模仿什么的基类是做.我强烈不愿意这样做.有什么建议?

c# asp.net-mvc actionresult viewmodel

3
推荐指数
1
解决办法
4853
查看次数

参数字典包含非可空类型的参数"id"的空条目

我正在尝试通过id默认路由中的参数从我的数据库中检索数据:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

在这个ActionResult中,我试图基于route id参数呈现自定义用户控件,以便检索所请求页面的相关数据

public ActionResult InitPageNav(int id)
{
      PageModel page = PageNavHelper.GetPageByID(id);
      return PartialView("UserControls/_PageNavPartial", page);
}
Run Code Online (Sandbox Code Playgroud)

编辑*

public static MvcHtmlString CreateMenuItems(this HtmlHelper helper, string action, string text)
{
     var menuItem = new TagBuilder("li");
     var link = new TagBuilder("a");

     //Get current action from route data
     var currentAction = (string)helper.ViewContext.RouteData.Values["action"];
     link.Attributes.Add("href", string.Format("/Home/{0}", action));

     if …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc routes actionresult

3
推荐指数
2
解决办法
3万
查看次数

MVC Action必须返回actionResult吗?

在我的控制器中所谓的操作可以是一个常规函数,它返回我想要的任何东西,或者返回一个ActionResult来声明它是否是一个"动作"?

我想知道我是否可以在没有返回的"actionname"中调用我的ActionLink中的函数actionresults.

asp.net-mvc actionresult

2
推荐指数
1
解决办法
1229
查看次数

ASP.NET MVC ActionResult View()不更改url

我有一个方法......

[HttpPost]
public ActionResult Start(SomeViewModel someViewModel) { ... }
Run Code Online (Sandbox Code Playgroud)

是基于一些条件返回之类的东西回报View("Invalid"),View("NotFound"),View("Run", anotherViewModel),等的问题是,无论我提出什么观点,URL不会更改以反映新的控制器/行动.当我的View想要发布到不同的操作时,这会产生问题.我怎样才能解决这个问题?

c# asp.net asp.net-mvc actionresult asp.net-mvc-2

2
推荐指数
2
解决办法
1万
查看次数

ASP.NET MVC将ActionLink中的字符串传递给控制器

将一个参数传递给控制器​​是空的..从我​​看到的使用正确的重载的例子.任何有用的帮助

@{
foreach (string str in ViewBag.ServerNames)
{
    <ul> 
     <img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
        <li >@Html.ActionLink(linkText: str.ToString(),actionName: "Index",controllerName:"Customer",
        routeValues:new{str = str.ToString()} , htmlAttributes: null)</li>
    </ul>

}
Run Code Online (Sandbox Code Playgroud)

}

public ActionResult Index(string conName)
    {
        Response.Write("con name = " + conName);
        Response.End();
        string con = ConfigurationManager.ConnectionStrings[conName].ConnectionString;
        trakman_Entities db = new trakman_Entities(con);
        return View(db.customers.ToList());
    }
Run Code Online (Sandbox Code Playgroud)

浏览器源代码

 <ul> 
     <img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
        <li ><a href="/Customer/Index/DefaultConnection">DefaultConnection</a></li>
    </ul>
    <ul> 
     <img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
        <li ><a href="/Customer/Index/trakman_Entities">trakman_Entities</a></li>
    </ul>
    <ul> 
     <img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
        <li ><a href="/Customer/Index/trakman_Entities1">trakman_Entities1</a></li>
    </ul>
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc actionresult

2
推荐指数
1
解决办法
7425
查看次数

将用户从控制器重定向到另一个视图MVC

我正在尝试将用户从控制器上的方法重定向到另一个视图但无论我做什么都无法使其工作.我究竟做错了什么?这是我的代码:

            public ActionResult SubmitReport(string JsonStringSend)
        {
            dynamic JSend = JObject.Parse(JsonStringSend);
            var schema = JsonSchema4.FromType<ReportItem>();
            var schemaData = schema.ToJson();
            var errors = schema.Validate(JSend.JsonString);
            schema = JsonSchema4.FromJson(schemaData);


            //Check for errors and show them if they exist
            if (errors.Count > 0)
            {
                //JSchema schema = JSchema.Parse(schema);
                foreach (var error in errors)
                    Console.WriteLine(error.Path + ": " + error.Kind);

                //JObject JsonString = JObject.Parse(JsonObj.JsonString.ToString());
                //JObject JsonStringSent = JObject.Parse(JsonStringSend);

            }
            else
            {
                return Redirect("/Admin/Reporting/ReportManagement");
            }
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

它永远不会重定向.我甚至试过这些:

Response.Redirect(Url.Action("/ReportManagement"));
RedirectToRoute(new { contoller = "ReportManagement", action = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc redirect controller actionresult

2
推荐指数
1
解决办法
4万
查看次数