所以我有一个ViewModel,所有属性都通过在它们上面有必需的属性来验证.当我提交表单时,它不会抛出任何错误消息,即需要名称字段.
我想我已经弄清了问题所在.它在提交按钮中,如何让按钮点击ActionList的HttpPost方法,因为此刻它没有击中它,因此模型状态未被验证.
视图:
<h2>@ViewBag.Title</h2>
<hr>
<div class="well">
@using (Html.BeginForm("BookingDetails", "Booking"))
{
@Html.ValidationSummary(true)
<div class="form-group">
@Html.DisplayNameFor(m => m.FirstName)
@Html.TextBoxFor(m => m.FirstName, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.FirstName)
</div>
<div class="form-group">
@Html.DisplayNameFor(m => m.Surname)
@Html.TextBoxFor(m => m.Surname, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Surname)
</div>
<div class="form-group">
@Html.DisplayNameFor(m => m.EmailAddress)
@Html.TextBoxFor(m => m.EmailAddress, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.EmailAddress)
</div>
<div class="form-group">
@Html.DisplayNameFor(m => m.MobileNumber)
@Html.TextBoxFor(m => m.MobileNumber, new { @class = "form-control" }) …Run Code Online (Sandbox Code Playgroud) 那么,我可以打电话ModelState.IsValid给控制器?
检查什么?什么是检查?它在哪里发生?
我查看了MSDN文档,但没有透露太多内容.
我正在使用MVC 4(剃须刀).
我使用dropdownlist而不是dropdownlistFor,因为下拉列表可以通过从数据库中检索数据来显示所选值.所以我需要知道如何通过从dropdownlist到Action参数(Edit)中选择一个值而不使用dropdownlistfor model来传递值.有办法解决吗?我看到ViewModel的VmCarList为null.
的ViewModels
public IEnumerable<Cars> VmCarList { get; set; }
public CarData VmCarData { get; set; }
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpGet]
public ActionResult Edit(int id)
{
_viewModels.VmCarList = Repository.LoadAllCarNames();
string selectedCar = (from car in _viewModels.CarList
where car.carId == id
select car.Name).First();
ViewBag.CarNames = new SelectList(_viewModels.CarList, "CarName", "CarName", selectedCar);
return View(_viewModels);
}
Run Code Online (Sandbox Code Playgroud)
视图
@model CarProgram.Models.ViewModels
@Html.DropDownList("CarList", (SelectList)ViewBag.CarNames)
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public ActionResult Edit(int id, ViewModels data)
{
try
{
if (ModelState.IsValid)
{
var car = new CarData();
UpdateModel(car);
bool result = …Run Code Online (Sandbox Code Playgroud) 我有一个由错误的控制器操作处理的URL.在我的路线文件中,我有以下内容
post '/tweets' => 'tweets#create'
Run Code Online (Sandbox Code Playgroud)
每当我发布到这个网址时,它都会被处理tweets#index.
Started POST "/tweets" for 127.0.0.1 at 2014-03-27 20:04:25 -0700
Processing by TweetsController#index as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"CCN9rDQiSXkVK0sF/BGU19fIufJTpho/ocySPmu7Lsc=", "tweet"=>{"title"=>"sdfdsafdsa", "description"=>"sdfdsasdadsa", "user_id"=>"1"}, "commit"=>"Create Tweet"}
Tweet Load (0.4ms) SELECT `tweets`.* FROM `tweets`
Rendered tweets/index.html.erb within layouts/application (0.1ms)
Completed 200 OK in 42ms (Views: 40.6ms | ActiveRecord: 0.4ms)
Run Code Online (Sandbox Code Playgroud)
我试过重新启动我的rails服务器但它仍然无法正常工作.
这是结果 rake routes
tweeter: rake routes
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password …Run Code Online (Sandbox Code Playgroud) 我在views/layouts/main.blade.php中有一个主要布局如何传递我的ListingsController.php中的变量
public function getMain() {
$uname = Auth::user()->firstname;
$this->layout->content = View::make('listings/main')->with('name', $uname);
}
Run Code Online (Sandbox Code Playgroud)
然后我将它添加到listing/main中的main.blade.php
@if(!Auth::check())
<h2>Hello, {{ $name }}</h2>
@endif
Run Code Online (Sandbox Code Playgroud)
它工作但我不能将该变量传递给views/layouts/main.blade.php中的mmaster布局我只需要在标题中显示用户的名字.
我有2个表,我试图在MVC中访问,一个名为Employees,一个名为Accountable.这是我的代码: -
public class dbEntity: DbContext
{
public dbEntity(): base("name=dbEntity") {}
public DbSet<Accountable> Accountable { get; set; }
public DbSet<Employees> Employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
问题是代码抱怨它找不到表'问责',我知道我可以添加这一行: -
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); }
Run Code Online (Sandbox Code Playgroud)
但后来代码抱怨它找不到'员工'.目前重命名表是不切实际的,还有另一种方法吗?
谢谢
下面是我的动作代码,它接收一个参数(int id).
public virtual ActionResult Index(int id)
{
// Logic
return View("List", id);
}
Run Code Online (Sandbox Code Playgroud)
我的网址是这样的: Home/List/1
我知道我可以退回View("列表"),但不知道如何使用它进行广告ID,请帮助我.
这是我的两条路线:
Route::resource('tournament/{tourId}/phase/{phaseId}/bets', 'PhaseController@getPhaseBets');
Route::resource('tournament/{tourId}/phase/{phaseId}', 'PhaseController@getPhaseInfo');
Run Code Online (Sandbox Code Playgroud)
但是我在尝试运行任何GET api时遇到此异常:
Route pattern "/api/tournament/{tourId}/phase/{phaseId}/{{phaseId}}" cannot reference variable name "phaseId" more than once.
Run Code Online (Sandbox Code Playgroud)
从它得到了{{phaseId}}吗?为什么我收到这个错误?!
这是我的html刀片代码
{{ Form::open(array('route' => 'restaurants.update', 'class' => 'mainInformationContrainer')) }}
<ul>
<li>
<label>Website</label>
<div class="oneInfo">
<input type="text" value="{{$restaurant->website}}" />
</div>
</li>
<li>
<input type="submit" value="Save Changes"/>
<input type="button" value="Cancle" class="cancelButton"/>
</li>
</ul>
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
但表格的网址是: public/restaurants/%7Brestaurants%7D
以为我已经有了路线:
Route::resource('restaurants', 'RestaurantsController');
Run Code Online (Sandbox Code Playgroud) 我有一个自动创建sitemap.xml的代码.我的网址如下所示:http://example.com/sitemap
但现在我想让它每分钟自动运行(只是测试).我试过2路,但没有一个工作:
首先是通过URL调用,例如:
*/1 * * * * wget http://example.com/sitemap
Run Code Online (Sandbox Code Playgroud)
要么
*/5 * * * * curl http://example.com/check
Run Code Online (Sandbox Code Playgroud)
第二个是通过php文件调用,我正在使用Yii,所以我不确定文件.php是什么?是这个控制器文件还是其他什么?
*/1 * * * * /usr/bin/php /home/domains/public_html/protected/modules/homepage/controller/HomepageController.php
Run Code Online (Sandbox Code Playgroud)
我的Sitemap操作在HomepageController.php中的代码
asp.net-mvc ×5
php ×4
c# ×3
laravel-4 ×3
laravel ×2
blade ×1
cron ×1
html-helper ×1
jquery ×1
modelstate ×1
restful-url ×1
ruby ×1
validation ×1
yii ×1