如何将控制器的名称传递给Html.BeginForm

时间:2017-05-21 07:00:28

标签: asp.net-mvc controller

我需要做以下

    namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{


    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    public function username()
    {
        return 'username';
    }

    public function rules()
    {
        return [
            'login' => 'required',
            'password' => 'required'
        ];
    }


}

那么我怎样才能在任何地方使用控制器的名称?

1 个答案:

答案 0 :(得分:0)

您只能使用html表单元素类型(如Input, select ,textbox)将传递数据表单视图转换为使用html formHtml.BigenFormAjax.BeginForm在运行时生成html表单)的操作。 所以试试:

@{ 
    var controllerName = "name of controller";
}

 @using (Html.BeginForm("ExportTo", controllerName)) 
 {
   @Html.Hidden("ControllerName",controllerName)
 }

此外,您可以在视图中获取控制器名称:

@{ 
    var controllerName = ViewContext.RouteData.Values["controller"].ToString();
}

OR

@{ 
    var controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString();
}