2017-10-17 126 views
0

可以說我有一個沒有模型綁定或數據註釋的表單。當表單發佈後,我怎樣才能返回一個驗證消息在控件下方的視圖 - 注意我試圖在這裏做服務器端驗證?添加驗證信息查看

下面是一個例子。

<input name="Address" type="text" value=""> 
<span class="field-validation-valid" data-valmsg-for="Address" data-valmsg-replace="true"></span> 


public ActionResult Create(FormCollection collection) 
{ 
     if (string.IsNullOrEmpty(collection["Address"]) 
     { 
      // Set the field validation error span message 
      ModelState.AddModelError("Address", "This field is required."); 

      return View(); 
     } 
}  

注:我知道如何使用視圖模型和數據的註釋添加驗證。在這種情況下,我無法使用視圖模型,因此需要某種方法來手動驗證並將驗證消息返回給視圖。

上面似乎並沒有工作

*更新*

也許使用可視數據如下:

<span class="field-validation-valid" data-valmsg-for="Address" data-valmsg-replace="true">@ViewData["Address"]</span> 
+1

嘗試在控件下面添加@ Html.ValidationMessageFor(m => m.Address,「」)?這應該顯示您的控制器中爲該屬性添加的所有模型狀態錯誤。還有'@ Html.ValidationSummary()',它顯示所有模型狀態錯誤。 – zgood

+0

做什麼zgood說,也將您的模型返回到您的視圖。 'return View(collection)' –

+0

另外,不要忘記分開你的Get和Post的ActionResults,不確定你是否試圖在這裏結合兩者。 –

回答

0

我會用HTML輔助去。

@Html.ValidationMessage("Address") 

這將自動生成HTML:

<span class="field-validation-valid" data-valmsg-for="address" data-valmsg-replace="true"></span>` 

您的代碼看起來是正確的。

if (string.IsNullOrEmpty(collection["Address"])) 
{ 
    // Set the field validation error span message 
    ModelState.AddModelError("Address", "This field is required."); 
return View(); 
}