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();
}
我想创建具有特殊条件的状态。
我有一个包含ID
,status
,minvalue
和maxvalue
的表,在这些值中有一个数字间隔。
我想在这些数字范围之外创建另一个状态。
ex:最小值:20最大值:40
所以..当我创建一个新状态时,如果我将数字放在该范围内,它会显示一条消息,例如“已经存在于该范围内”,否则,它会创建状态。
谢谢
答案 0 :(得分:0)
1。从ActionResult渲染布局页面(使用Controller。查看扩展方法)
示例代码
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文件的代码 视图文件夹。
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/