I created two materials , one is of Spare Parts (ERSA) for store location : Engineering spares and second of Raw Material (ROH) for Store location : Raw store.

Now If I create a purchase requisition for that spares parts and i enter store location of Raw store. System allows me to do this which is wrong.
I want to restrict if I create purchase requisition of spares then system only allows me to enter materil for Engineer store ,not Raw material.

I don't think you can block that. A storage location is optional at PR at PO and at contract. The material must have been created for the storage location at GR, unless you customised automatic creation.

The only thing that could be possible: enter the storage location on the MRP-view and check if there is a system message available. table T100T.

In fact, the storage location is optional field in PR, it is true that no validation is made during PR creation. What you should do is to make sure that the 'Storage location for EP' field is maintained in the MRP View 2 of the Material Master which can enable the default of storage location when PR is generated during MRP running.

This is good what you suggest . But this is only applicable for those materials for which MRP views are opened.
But what can i do for those material for which MRP views are not maintained ?
Your further and expert opinion require in this case too.

I think that you should clarify to your client that the maintenance of MRP view does not necessarily mean that your material item is subject to MRP running since this is completely compliant with how you set up your MRP type in the MRP View 1 of your Material Master. With the selection of 'ND' MRP Type, it is true that your material will not be subject to MRP running.