我目前正在验证输入并在"胖控制器"中返回错误,如下所示:
class SomeController
{
public function register()
{
// validate input
$username = isset($_POST['username']) && strlen($_POST['username']) <= 20 ? $_POST['username'] : null;
// proceed if validation passed
if (isset($username)) {
$user = $this->model->build('user');
if ($user->insert($username)) {
$_SESSION['success'] = 'User created!';
} else {
$_SESSION['error'] = 'Could not register user.';
}
} else {
$_SESSION['failed']['username'] = 'Your username cannot be greater than 20 characters.';
}
// load appropriate view here
}
}
class SomeModel
{
public function insert($username)
{
// sql …Run Code Online (Sandbox Code Playgroud) 我有一组自定义类的元素User.现在我简直无法弄清楚,这个类如何实例化.我甚至通过创建另一个对象并从那里拉出EMPTY集来尝试它,如下所示:
Site mySite = new Site(/*some params here*/);
User newUser = new User(/*some other params here*/);
Set<User> users = mySite.getUsers();
users.add(newUser);
mySite.setUsers(users);
Run Code Online (Sandbox Code Playgroud)
但由于mySite.users是null(不是空的),我当然得到一个NullPointerException.
那么,正确的方法是什么?我会非常感激,希望这不是模糊的!
干杯,Stacky
我经常搜索并阅读了很多关于MVC概念的内容.但我仍然不知道如何将它们连接在一起.假设我有一个控制器类,视图类和模型类.如果用户在该视图中执行了某些操作,则视图应通知控制器操作,并且控制器可能需要与模型通信以获取某些数据.
我之前做的是创建一个"视图控制器",它具有该视图的视图和一些动作.有时候没有模特.所有数据都通过参数传递.如果有一些模型,其中一些是单身,所以我可以到处获取它.
我正在学习Ruby on Rails.我注意到这个短语" 胖模型,瘦的控制器 ".我不确定这意味着什么.这是否意味着我必须在模型中使用更多代码,在控制器中使用更少代码?有人可以解释一下吗?
我正在创建一个python应用程序,我想用MVC实现它.我打算用pubsub来完成这个,但我遇到了PureMVC.
任何人都可以向我解释这两件事,它们之间的区别以及使用这两件事的含义.
我试图通过ajax对我的控制器进行简单的调用.RouteConfig尚未更改并设置为默认值.当我进行ajax调用时,"网络"调试工具中请求的Url是:
'http://localhost:59275/Leaderboard/Leaderboard/GetPosition'
Run Code Online (Sandbox Code Playgroud)
这导致404,因为Controller,Leaderboard被添加到Url中两次.应该是正确的网址
'http://localhost:59275/Leaderboard/GetPosition'
Run Code Online (Sandbox Code Playgroud)
我的ajax电话如下:
$.ajax({
url: 'Leaderboard/GetPosition',
type: "GET",
dataType: 'xml',
success: function (data) {
$('#results').html(data);;
}
});
Run Code Online (Sandbox Code Playgroud)
我的控制器如下:
public class LeaderboardController : Controller
{
[Webmethod]
public static DataTable GetPosition()
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我需要从控制器获取数据到View作为JSON格式,但它不起作用,我不明白为什么.
我的控制器(我在索引操作上请求它):
public class HomeController : Controller
{
CompanyTicketsDb _db = new CompanyTicketsDb();
public ActionResult Index()
{
var model =
_db.Tickets
.Select(r => new TicketListViewModel
{
Id = r.Id,
Name = r.Name,
Description = r.Description,
CompanyName = r.CompanyName,
Status = r.Status,
CompanyId = r.CompanyId,
});
if (Request.AcceptTypes.Contains("application/json"))
{
return Json(model, JsonRequestBehavior.AllowGet );
}
return View(model);
}
}
Run Code Online (Sandbox Code Playgroud)
而我的观点(这是局部视图)看起来像是(测试模式):
@model IEnumerable<MvcApplication4.Models.TicketListViewModel>
<button id="Button1">asd</button>
@section scripts {
<script src="~/Scripts/knockout-3.2.0.js"></script>
<script>
$(document).ready(function () {
$("#Button1").click(function (evt) {
type: 'GET'
url = '/';
dataType …Run Code Online (Sandbox Code Playgroud) 我是ASP.NET MVC的新手,所以请耐心等待.
我一直认为MVC(在任何语言中)的想法是视图对模型一无所知,反之亦然,并且控制器是将所有东西保持在一起的粘合剂.
现在,当(在Visual Studio 2013/MVC 5中)我通过Add - > New Scaffolded Item添加一个新控制器时,生成的视图包含第一行
@model IEnumerable<MyModelClass>
Run Code Online (Sandbox Code Playgroud)
我知道在编写视图时使IntelliSense工作很好,但是视图不应该是不可知/完全忘记模型吗?
我有一个应用程序,有两个型号类别和产品
产品属于类别.
我创建了一个导航栏下拉列表,要求@category和@product对象在整个应用程序中可用(导航栏显示在应用程序的每个页面上.)
我无法解决的问题是放置这些基本定义的最佳位置,而不是在每个页面定义中多次定义它们.
我需要定义以下内容:
@category = Category.all
@products = @category.products.all
Run Code Online (Sandbox Code Playgroud)
然后导航栏循环看起来像这样.
<% @category.each do |c| %>
<%= c.name %>
<% @products.each do |p| %>
<% link_to product_path(p) do %>
<%= p.name %>
<% end %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我是一个铁杆新手,所以我相信这里有一些错误,但任何帮助将不胜感激!
当我在我的应用程序中删除记录时,我有一个问题,我知道发生这种情况的原因,但我无法解决问题
我在这里转载了这个案子,
我添加一个发票,然后我添加更多的交易.
我删除发票后问题就出现了,这是错误信息
未捕获错误:断言失败:错误:尝试didSetProperty在状态root.deleted.saved中处理事件.使用{name:transactionsAmounts,oldValue:NaN,originalValue:undefined,value:0}调用.
删除发票时,基本上存在错误模型{transactionsAmount}
transactionAmounts是任何单个事务的总和,并在模型中创建
transactionsAmounts: DS.attr('string'),
setTransactionAmount : function(){
if(this.get("transactions.length")>0){
this.get("transactions").then(function(transactions){
var sum=0;
transactions.forEach(function(transaction){
sum+=transaction.get("total");
});
this.set("transactionsAmounts",sum);
}.bind(this));
}
}.observes('transactions.length', 'transactions.@each.total'),
Run Code Online (Sandbox Code Playgroud)
在删除发票的那一刻,不会删除transactionAmount,我怎么能发生这种情况才能删除发票模式(hasMany事务)并且没有得到错误?
ajax ×2
ruby ×2
asp.net-mvc ×1
controller ×1
ember.js ×1
ios ×1
java ×1
javascript ×1
jquery ×1
jsbin ×1
json ×1
null ×1
object ×1
php ×1
puremvc ×1
python ×1
set ×1
validation ×1