mvc 方面的问题?

2025-05-09 19:52:36
推荐回答(2个)
回答1:

问题一:三元表达式,id可不传递参数,即int可赋值null

问题二:return  view(参数“new JsonResult() { Data = new { result = 1, msg = "添加车辆失败!" } }”),视图页使用参考下面的

        public ActionResult Index(int? page)

        {

            if (ViewData["k"] != null)

            {

                System.IO.File.WriteAllText("D:\\tid7.txt", ViewData["k"].ToString());

            }

            var newsClasses = from c in news.NewsClassesSet orderby c.ID select new SelectListItem { Text = c.ClassName, Value = c.ID };

            ViewBag.NewsClasses = newsClasses;

            var newsList = from m in news.NewsSet orderby m.BookTime descending select m;

            PagerHelper pager = new PagerHelper(newsList, "/News/index", 1, page ?? 1, 3, true);

            return View(pager);

        }
@{
    Layout = null;
}
@model PagerHelper



    
    新闻列表
    
    
        function PagePostSubmit(url, page) {
            document.getElementById("PageIndex").value = page;
            document.forms[0].method = "post";
            document.forms[0].action = url;
            document.forms[0].submit();
        }
    


    

        
            
                
                    信息列表

                
            
        
        
        @using (Html.BeginForm())
        {
        
            
                
                    新闻类别
                
                    @Html.DropDownList("NewsClasses", ViewBag.NewsClasses as SelectList, "—请选择—")
                
                    信息标题
                
                    @Html.TextBox("NewsTitle")
            
            
                
                    @Html.Hidden("PageIndex", Model.PageIndex.ToString())
                    
                    
                
            
        
        }
        @{Html.RenderPartial("_login", Model);}
        
            
                
                    新闻类别
                
                    新闻标题
                
                    阅读次数
                
                    发布时间
                
                    操作
            
            @{
                List nclist = (ViewBag.NewsClasses as IQueryable).ToList();
            }
            @foreach (var news in Model.PagedData)
            {
            
                
                    @nclist.FirstOrDefault(c => c.Value == news.NewsClass).Text 
                
                    @news.NewsTitle 
                
                    @news.ReadCounts 
                
                    @news.BookTime 
                
                    @Html.ActionLink("编辑", "NewsEdit", new { news.ID })
                      
                    @Html.ActionLink("删除", "NewsDelete", new { news.ID }, new { onclick = "return confirm('你确认删除吗?')" })
                
            
            }
            
                
                    @Html.Raw(Model.PageNumberBar)
                
            
        
    


回答2:

如上面的所说,int 是值类型,他的默认值是 0 。但是有的时候,你QueryString并不带这个id参数。
而你又没有一个Action可以处理这个请求。
但是你要处理怎么办呢?
你就需要给一个Action 让它能够接受,你这个不带id参数的请求。

注:对于不存在的东西,即为null。
那么,你就需要一个能够接受null值的Action。

所以,int? 扩展了int 的范围,增加了null值。

而对于楼上说的 ??

public string poo(int? id)
{
//todo
}

调用:
int? x;
//todo...

poo(x??5);
也就是说,x如果为null,则默认传值5.

相关问答