如何从父类调用子类的函数?考虑一下:
class whale
{
function __construct()
{
// some code here
}
function myfunc()
{
// how do i call the "test" function of fish class here??
}
}
class fish extends whale
{
function __construct()
{
parent::construct();
}
function test()
{
echo "So you managed to call me !!";
}
}
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个Rails 3项目,该项目分为四个部分:
由于模型在三个关键组件之间共享,我希望它们远离一个主项目,但是每个部分都需要访问模型,但我不想重复代码并且在任何地方都有不同的版本.
目前我在gem中有模型代码,在每个项目的Gemfile中我使用以下行引用它们:
gem "my_models", :path => "../my_models/"
Run Code Online (Sandbox Code Playgroud)
但是,当我部署到我们的测试服务器以供我的同事评估系统时,我需要从外部存储库中提取模型,因此我将以上行替换为以下内容:
gem "my_models", :git => "git@private.repository.com:username/my_models.git"
Run Code Online (Sandbox Code Playgroud)
这在它自身运行良好,但它在"版本"方面非常笨重(即我每次希望将更改部署到测试服务器时都需要碰撞版本),切换线路以使用git而不是本地,并确保我正确地推送文件.
以前我使用的是共享的git子模块,但这很尴尬.
我宁愿不把所有内容都构建成一个大型项目,因为这些项目往往变得怪异且难以维护,如果可能的话我也想分开关注点,因此我对管理站点所做的任何更改都没有太多有可能影响其他组件 - 显然这些模型有可能引发问题,但这是我已经考虑和理解的风险.
当涉及到这样的事情时,那里的人们会提出什么建议呢?或者,我是否完全采用了错误的方式?
一些额外的背景:
这个应用程序是对现有网站的重写,遵循"将所有内容整合到一个项目中"的模式 - 不幸的是,这里有两个问题:
基本上我要分开两件事 - 前端(公共网站和API)和后端 - 我对软件开发的所有了解都告诉我,将所有这些结合在一起并不是一个理想的解决方案(过去的历史表明我认为,在确保前端性能方面,将这两者分开是一个很好的举措.
也许我需要从另一个角度来看这个 - 保持每个项目中的模型,而不是在项目之间共享它们,每个功能区域都有一个简化的功能子集(即后端需要知道谁创建了一个帖子,但是前端并不真正关心它,因此在阅读模型时省略了这种逻辑).
我的Spring 3应用程序中的每个视图都有一组可以依赖的属性.所以每个控制器的第一行是这样的:
ControllerHelper.addDefaultModel(model, personManager, request);
Run Code Online (Sandbox Code Playgroud)
在那里我会补充
imagesHost)这一切都允许每个视图显示登录用户的名称,轻松引用图像位置,语言列表和一些有关该站点的整体统计信息.
所以问题是,控制器模型对象是存储所有数据的最佳位置还是有一个更方便的地方,使得视图访问这些信息一样容易?
其次,我真的很想不必将ControllerHelper上面的行作为每个控制器的第一行.它实际上并不总是第一行,有时我首先检查是否需要在该控制器中重定向,因为我不想浪费资源填充模型.也许一个过滤器或注释或一些春天的回调机制可以确保ControllerHelper代码被称为后,控制器完成,但正确的前视图呈现,跳过此是否返回重定向?
我在ASP.NET MVC中上传文件时遇到问题.我的代码如下:
视图:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index2</h2>
@using (Html.BeginForm("FileUpload", "Board", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" />
<input type="submit" />
}
Run Code Online (Sandbox Code Playgroud)
控制器:
[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase uploadFile)
{
if (uploadFile != null && uploadFile.ContentLength > 0)
{
string filePath = Path.Combine(Server.MapPath("/Temp"), Path.GetFileName(uploadFile.FileName));
uploadFile.SaveAs(filePath);
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
但uploadFile总是返回null.任何人都可以找出原因??
我需要检查我的模型是否在我的Razor视图中有效.如果它有效,那么我希望能够显示一些HTML.
我怎样才能做到这一点.我想要类似的东西
@if ( Model.IsValid ) {
}
Run Code Online (Sandbox Code Playgroud)
但以上不起作用
我只是听了StackOverflow团队的第17个播客,他们高度评价了ASP.NET MVC,我决定将其检查出来.
但首先,我想确定它是值得的.我已经为一个项目创建了一个基础Web应用程序(供其他开发人员使用),这个项目将在几天后开始,并且根据您的经验想知道我是否应该花时间学习MVC的基础知识并重新创建具有此模型的基本Web应用程序.
真的有很多专业人士会让它变得有价值吗?
编辑:这不是一个现有的项目,它是一个即将开始的项目,所以如果我要去做它应该是现在......
我刚发现了这个
但是,它不会将现有的回发后模型用于返回服务器的交互.相反,您将所有最终用户交互路由到Controller类 - 这有助于确保关注点和可测试性的清晰分离(这也意味着没有基于MVC的视图的视图状态或页面生命周期).
那会怎么样?没有观点?没有事件?
我正在尝试创建一个web应用程序,我希望能够插入单独的程序集.我正在使用MVC预览4和Unity结合依赖注入,我用它来从我的插件程序集创建控制器.我正在使用WebForms(默认的aspx)作为我的视图引擎.
如果我想使用一个视图,我会坚持核心项目中定义的视图,因为ASPX部分的动态编译.我正在寻找一种将ASPX文件封装在不同程序集中的正确方法,而无需完成整个部署步骤.我错过了一些明显的东西吗 或者我应该以编程方式创建我的观点?
更新:我改变了接受的答案.尽管戴尔的答案非常彻底,但我还是选择了不同的虚拟路径提供商.它的工作方式就像一个魅力,我认为完全只需要20行代码.
这个错误随机出现在我们的MVC应用程序中.有时做同样的事情,有时也不会.有没有人知道这是否与任何可能是简单修复的事情有关,或者这是很多人见过的常见事情?
System.InvalidOperationException: This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.
at System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass14.b__11()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass14.<>c__DisplayClass16.b__13()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass14.<>c__DisplayClass16.b__13()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass14.<>c__DisplayClass16.b__13()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext …Run Code Online (Sandbox Code Playgroud) 我正在使用MVC3,并使用Entity Framework 4.0实体作为我的模型.到目前为止,就使用它作为模型而言,一切都很有效(所有的crud操作/页面生成开箱即用).我想知道,你如何获得与手动生成模型时相同的强大标签和验证信息?
这是我的意思的一个例子.这是一个由MVC3示例项目生成的类:
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
通过上面的示例,您可以指定在字段的标签中显示的内容(显示)以及要使用的字段类型(密码).但是,当我尝试使用实体框架并将其推送到下面的视图时,我看到自动生成的标签只是字段名称,而不是我希望用户看到/必须阅读的内容:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.MiddleName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MiddleName)
@Html.ValidationMessageFor(model => model.MiddleName) …Run Code Online (Sandbox Code Playgroud) 我在应用程序中有一组控制器和一个注释类,@ControllerAdvice用于设置每个控制器中使用的某些数据元素.我正在使用Spring MVC 3.2并拥有这些控制器的Junits.当我运行Junit时,ControllerAdvice如果我部署应用程序Tomcat并通过浏览器提交请求,则控件不会进入该类.
有什么想法吗?
asp.net-mvc ×6
spring ×2
spring-mvc ×2
backend ×1
c# ×1
c#-4.0 ×1
file-upload ×1
inheritance ×1
java ×1
jquery ×1
json ×1
junit ×1
php ×1
plugins ×1
rails-models ×1
razor ×1
spring-3 ×1