TemplateInfo进入Controller

时间:2011-10-04 16:25:04

标签: asp.net asp.net-mvc asp.net-mvc-3

如何在提交表单后获取表单字段ID。我试着这样:

ViewData.TemplateInfo.GetFullHtmlFieldId(logOnParts.Part.UserNameOrEmail)

但在控制器方面没有工作。我需要得到“Part_UserNameOrEmail”的东西..

if (String.IsNullOrEmpty(logOnParts.Part.UserNameOrEmail))
{
    ModelState.AddModelError("Part_UserNameOrEmail", "error");
    TempData["logon-focus-field"] = "Part_UserNameOrEmail";
}

所以我会把这个领域集中在视角这样:

$(document).ready(function () {
    $('#TempData["logon-focus-field"]').focus();
});

1 个答案:

答案 0 :(得分:0)

控制器绝对不需要这些信息。生成的id是视图特定信息。如果您需要在控制器中使用它,这只意味着您的应用程序存在严重的设计问题。不幸的是,由于您没有在问题中解释您的场景,因此很难帮助您解决此问题。所以在你的控制器中你可以这样做:

Expression<Func<MyViewModel, string>> expression = x => x.Part.UserNameOrEmail;
string name = ExpressionHelper.GetExpressionText(expression);
string id = new TemplateInfo().GetFullHtmlFieldId(name);