2014-03-12 93 views
2

工作部分观点我在剃刀局部视图声明编辑字段作为远程验证未在asp.net mvc的5

<div class="form-group"> 
     @Html.LabelFor(model => model.sifra_materijala, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.sifra_materijala) 
      @Html.ValidationMessageFor(model => model.sifra_materijala) 
     </div> 
    </div> 

观点被称为与指数“的RenderPartial”。

此生成的HTML:

<input type="text" value="" name="sifra_materijala" id="sifra_materijala" 
data-val-remote-url="/NormativiMaterijala/MaterijalUPoziciji" 
data-val-remote-additionalfields="*.sifra_materijala" 
data-val-remote="'sifra_materijala' is invalid." 
data-val="true" class="text-box single-line"> 

我也有

[HttpGet] 
    public virtual JsonResult MaterijalUPoziciji(string sifra_materijala) 
    { 
     // do some checking and return json result.. 
    } 

[Remote("MaterijalUPoziciji", "NormativiMaterijala", ErrorMessage = "Already Exists")] 
    public string sifra_materijala { get; set; } 

模型需要检查...... 这一切只是不工作没有明显的原因。我检查了拼写,jquery不显眼的脚本,一切正常,但验证方法从未被调用过。

对于事情变得更加令人困惑,我有这一切都完全正常工作的另一页...

有人可以帮助我?

编辑:萤火虫显示没有请求退出与需要验证的数据/更改编辑框后发送检查页...

我也有脚本包括在内。

<script src="@Url.Content("~/Scripts/jquery-2.1.0.js")"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.js")"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script> 
<script src="@Url.Content("~/Scripts/bootstrap.min.js")"></script> 

我还添加了第二个验证,那就是并不遥远,这一个是工作,但远程还是死了......

[StringLength(10, MinimumLength = 5, ErrorMessage = "Sifra must be minimum 5 characters long")] 
     [Remote("MaterijalUPoziciji", "NormativiMaterijala", ErrorMessage = "Already Exists")] 
     public string sifra_materijala { get; set; } 
+0

有你在类似的提琴手(http://www.telerik.com/fiddler)检查,看看是否该请求在发送所有? –

+0

没有请求被发送到服务器...当我退出/更改编辑框,没有任何反应...检查它与萤火虫... –

回答

0

的尝试和错误不眠之夜后解决它...... 问题是在我的控制器功能的“虚拟”的宣言..删除了,现在完美的工作...

[HttpGet] 
    public JsonResult MaterijalUPoziciji(string sifra_materijala) 
    { 
     // do some checking and return json result.. 
    } 

我希望这个答案会帮助别人的某个...

2

我有一个类似的问题,没有客户端验证,包括远程工作在局部视图。在我的情况下,因为jquery.validate包是在包含页面,而部分是通过Ajax加载。我不得不把jquery.validate JS脚本移入局部视图:

@Scripts.Render("~/bundles/jqueryval")