Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何创建自定义Html.ValidationMessage?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何创建自定义Html.ValidationMessage?

Asp.net mvc 如何创建自定义Html.ValidationMessage?,asp.net-mvc,Asp.net Mvc,这是我的控制器: /// <summary> /// Activity /// </summary> /// <returns></returns> public ActionResult CreateActivity() { AriaCRMEntities aria = new AriaCRMEntities(); var unit = from u in aria.ActivityGroupIDs select u; L

这是我的控制器:

/// <summary>
/// Activity
/// </summary>
/// <returns></returns>
public ActionResult CreateActivity()
{
    AriaCRMEntities aria = new AriaCRMEntities();
    var unit = from u in aria.ActivityGroupIDs select u;
    List<SelectListItem> lst = new List<SelectListItem>();
    foreach (var u in unit)
    {
        lst.Add(new SelectListItem { Text = u.ActivityGroupName.ToString(), Value = u.ActivityGroupID_FK.ToString() });
    }
    ViewData["activity"] = lst;
    return View();
}

[HttpPost]
public ActionResult CreateActivity(FormCollection model)
{

        if (ModelState.IsValid)
        {
            Activity activ = new Activity();
                if (!string.IsNullOrEmpty(model["ActivityGroupID_FK"]))
                {
                    AriaCRMEntities aria = new AriaCRMEntities();
                    activ.ActivityGroupID_FK = Int32.Parse(model["ActivityGroupID_FK"]);
                    activ.ActivityType = model["ActivityType"];
                    activ.ActivityDes = model["ActivityDes"];
                    aria.Activities.AddObject(activ);
                    aria.SaveChanges();
                    return RedirectToAction("Create");
                }
        }
        return View(model);
}
//
///活动
/// 
/// 
public ActionResult CreateActivity()
{
AriaCRMEntities aria=新的AriaCRMEntities();
var unit=来自aria中的u.ActivityGroupId选择u;
List lst=新列表();
foreach(单位为var u)
{
添加(新SelectListItem{Text=u.ActivityGroupName.ToString(),Value=u.ActivityGroupID_FK.ToString()});
}
ViewData[“活动”]=lst;
返回视图();
}
[HttpPost]
public ActionResult CreateActivity(FormCollection模型)
{
if(ModelState.IsValid)
{
活动activ=新活动();
如果(!string.IsNullOrEmpty(model[“ActivityGroupID_FK”]))
{
AriaCRMEntities aria=新的AriaCRMEntities();
activ.ActivityGroupID_FK=Int32.Parse(model[“ActivityGroupID_FK]”);
activ.ActivityType=模型[“ActivityType”];
activ.ActivityDes=模型[“ActivityDes”];
aria.Activities.AddObject(activ);
aria.SaveChanges();
返回重定向操作(“创建”);
}
}
返回视图(模型);
}
我的看法是:

<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true,) %>
<fieldset>
    <legend>Fields</legend>
<br />
<%:Html.DropDownListFor(model=>model.ActivityGroupID_FK , (IEnumerable<SelectListItem>)ViewData["activity"], "انتخاب نوع فعالیت")%><br /> 
<%Html.ValidationMessageFor (model=>model.ActivityGroupID_FK,"dddddddddd"); %>
    <div class="editor-label">
        <%: Html.LabelFor(model => model.ActivityType) %>
    </div>
    <div class="editor-field">
        <%: Html.TextBoxFor(model => model.ActivityType) %>
        <%: Html.ValidationMessageFor(model => model.ActivityType,"dfsaaa") %>
    </div>
    <div class="editor-label">
        <%: Html.LabelFor(model => model.ActivityDes) %>
    </div>
    <div class="editor-field">
        <%: Html.TextBoxFor(model => model.ActivityDes) %>
        <%: Html.ValidationMessageFor(model => model.ActivityDes) %>
    </div>
    <p>
        <input type="submit" value="Create" id="btn"/>
    </p>
</fieldset>
<% } %>

领域

model.ActivityGroupID_FK,(IEnumerable)ViewData[“activity”],“activity”;“activity”;“activity”;“activity”;“activity”>
model.ActivityGroupID_FK,“dddddddd”);%> model.ActivityType)%%> model.ActivityType)%%> model.ActivityType,“dfsaaa”)%%> model.ActivityDes)%%> model.ActivityDes)%%> model.ActivityDes)%%>


但是现在我需要验证
。如何创建自定义验证?

如果要在下拉列表旁边显示验证错误消息,可以从控制器执行此操作,如下所示:

ModelState.AddModelError("ActivityGroupID_FK", "The selected value is invalid.");
更新

我刚刚注意到DropDownList的验证消息如下所示:

<%Html.ValidationMessageFor (model=>model.ActivityGroupID_FK,"dddddddddd"); %>
model.ActivityGroupID_-FK,“dddddddd”);%
您可能希望这样做:

<%: Html.ValidationMessageFor(model=>model.ActivityGroupID_FK,"dddddddddd") %>
model.ActivityGroupID_-FK,“dddddddd”)%>

不太确定您的要求是什么您可以将其表述为一个问题吗?您可以在模型中进行自定义验证。看看这是一个.yes但显示此错误传入字典的模型项类型为“System.Web.Mvc.FormCollection”,但此字典需要类型为“Cascading2.Models.Activity”的模型项。我认为此错误与此无关
AddModelError
的签名只需要两个字符串参数;此处不涉及
System.Web.Mvc.FormCollection
Cascading2.Models.Activity
。从错误描述来看,控制器传递的模型似乎与视图中的@model指令不匹配。