ActionResult创建条件

时间:2019-04-01 16:29:49

标签: c# asp.net model-view-controller

im用CRUDS做MVC。 这是我的代码。

[HttpPost]
public ActionResult Create([Bind(Include = "FileStatusID, Name, MinValue, MaxValue")] fileStatusModel FILeStatusModel, TBL_FileStatus tBL_FileStatus) //include tem os valores que vamos inserir na view
{
    var userID = ((SessionModel)Session["SessionModel"]).UserID; // get current user id


    if (ModelState.IsValid)
    {
        TBL_FileStatus item = new TBL_FileStatus()
        {
            Name = FILeStatusModel.Name,
            MinValue = FILeStatusModel.MinValue,
            MaxValue = FILeStatusModel.MaxValue,
            Ative = true,
            CreateDate = DateTime.Now,
            CreateBy = userID
        };

        db.TBL_FileStatus.Add(item);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View();
}

我想创建具有特殊条件的状态。 我有一个包含IDstatusminvaluemaxvalue的表,在这些值中有一个数字间隔。 我想在这些数字范围之外创建另一个状态。

  

ex:最小值:20最大值:40

所以..当我创建一个新状态时,如果我将数字放在该范围内,它会显示一条消息,例如“已经存在于该范围内”,否则,它会创建状态。

谢谢

1 个答案:

答案 0 :(得分:0)

1。从ActionResult渲染布局页面(使用Controller。查看扩展方法)

  

控制器。查看方法有两种扩展方法,使用这些   扩展方法,我们可以传递一个母版页(布局页)名称和   根据条件呈现布局页面。   enter image description here

enter image description here

示例代码

public ActionResult About()
{
    return View("About","_otherLayout");
} 

public ActionResult OtherAbout()
{
    string myName = "Jignesh Trivedi";
    return View("About", "_otherLayout", myName);
}

2。使用_ViewStart.cshtml页面

  

控制器。查看方法有两种扩展方法,使用这些   扩展方法,我们可以传递一个母版页(布局页)名称和   根据条件渲染布局页面。

     

使用_ViewStart.cshtml页面,我们可以基于   有条件的。

示例代码

@{   
var controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();
    string layout = "";
    if (controller != "Home")
    {
        layout = "~/Views/Shared/_otherLayout.cshtml";
    }
    else
    {
        layout = "~/Views/Shared/_Layout.cshtml";
    }
    Layout = layout;
}
  

我们还可以创建多个_ViewStart.cshtml页面。文件   执行取决于文件夹中文件的位置   层次结构和正在渲染的视图。 MVC运行时将首先   执行位于_root的_ViewStart.cshtml文件的代码   视图文件夹。

enter image description here

3。在每个视图中定义布局页面

  

我们可以通过设置布局来覆盖默认的布局渲染   使用以下代码的视图属性。

@{   
    Layout = "~/Views/Shared/_otherLayout.cshtml";
    ViewBag.Title = "About Us";
}

如:Jignesh Trivedi的文章所述 https://www.c-sharpcorner.com/UploadFile/ff2f08/rendering-layouts-base-on-condition-in-Asp-Net-mvc/