首页 > 解决方案 > 如何将用户在文本框中输入的文本从视图传递到 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>

这是我的模型类,我在其中创建了两个属性FilterValueFilterText

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);
    }

在控制器中,我想将过滤后的值作为参数传递给方法。

标签: c#asp.netasp.net-mvc

解决方案


您的表单在哪里将值从视图传递到控制器首先您应该在视图中有一个表单并使用 POST 或 GET 方法将表单提交给控制器,然后在控制器中接收值


推荐阅读