c# - 如何将用户在文本框中输入的文本从视图传递到 asp.net 应用程序中的控制器。我在 razor 或 cshtml 中的视图
问题描述
我是 asp.net 和 mvc 的初学者。我已经在 cshtml (视图)中尝试了这个 html 代码。我在模型中创建了一个类属性“filtervalue”,我传入
html.textboxfor(m => Model.Filtertype)
我希望model.filtertype
应该包含用户在文本框中输入的值,但调试时Model.Filtertype
为空。
<div id="exportDiv" disabled class="bt-exportdiv">
<p>Export By:</p>
@Html.RadioButtonFor(m => Model.Filtertype, 1, new { onclick = "ByUdidRadioButtonChecked()", id = "udid", name = "export" })
<span>Udid</span>
@Html.RadioButtonFor(m => Model.Filtertype, 2, new { onclick = "ByUserRadioButtonChecked()", id = "byuser", name = "export" })
<span>By user</span>
@Html.RadioButtonFor(m => Model.Filtertype, 4, new { onclick = "AllUsersRadioButtonChecked()", id = "exportall", name = "export" })
<span>Export All (All Users In the Company)</span>
@Html.TextBoxFor(m => Model.FilterValue, new { style = "width:375px", onclick = "GetFilterTypeValue()", placeholder = "", @class = "form-input", id = "SearchTextbox", name = "filter-text" })
<input type="submit" value="Export" onclick="location.href='@Url.Action("UserExcelExports", "User")'">
</div>
这是我的模型类,我在其中创建了两个属性FilterValue
和FilterText
:
public class UserGrid : _VerticalLayoutViewModel
{
public int Filtertype { get; set; }
public string FilterValue { get; set; }
}
这是我使用模型属性的控制器方法
public MemoryStream ExcelExportforUser()
{
UserRequestContext requestContext = WebUtils.GetUserRequestContext(ControllerContext.HttpContext);
SiteContext siteContext = WebUtils.GetSiteContext(ControllerContext.HttpContext);`
IUserService _userService = (IUserService)GetService(ServiceId.UserService);
List<User> tmpUsers = new List<User>();
Company company = null;
long CompanyId = 0;
UserGrid filter = new UserGrid();
int filtertype = filter.Filtertype;
string filtervalue = filter.FilterValue;
ICompanyService CompanyService = (ICompanyService)GetService(ServiceId.CompanyService);
if (ControllerContext.HttpContext.Session[WebConstants.COMPANY_ID] != null && long.Parse(ControllerContext.HttpContext.Session[WebConstants.COMPANY_ID].ToString()) != 0)
{
CompanyId = long.Parse(ControllerContext.HttpContext.Session[WebConstants.COMPANY_ID].ToString());
}
else if (WebUtils.GetUser(ControllerContext.HttpContext) != null)
{
CompanyId = WebUtils.GetUser(ControllerContext.HttpContext).CompanyId;
}
try
{
tmpUsers = _userService.GetFilteredUsersList(CompanyId, requestContext.SiteKey, filtertype, filtervalue, requestContext);
}
catch (Exception ex)
{
//catch and handle any exception in service
LogWriter.WriteAuditLog(ex.Message, LogLevel.ERROR, ex, requestContext: RequestContext);
}
在控制器中,我想将过滤后的值作为参数传递给方法。
解决方案
您的表单在哪里将值从视图传递到控制器首先您应该在视图中有一个表单并使用 POST 或 GET 方法将表单提交给控制器,然后在控制器中接收值
推荐阅读
- c# - 反序列化协议缓冲区c ++中的字符串数组
- bash - CircleCI 2.0 -> /bin/bash: bash: command not found
- c# - 从 JSON 中提取第一个元素
- javascript - 更改响应式数据表中的输入值
- php - $_SESSION:未定义索引
- php - 如何使用类函数和init文件获取redis键值
- node.js - big-react-calendar:'未捕获的类型错误:无法读取未定义的属性'momentLocalizer'
- json - 如何将 NSArray 存储在 Userdefaults 中?
- hadoop - 数据节点故障后 hdfs 恢复
- python - 从Python中的对象属性获取对象